zoukankan      html  css  js  c++  java
  • Masonry复杂ScrollView布局

    前言

    说到iOS自动布局,有很多的解决办法。有的人使用xib/storyboard自动布局,也有人使用frame来适配。对于前者,笔者并不喜欢,也不支持。对于后者,更是麻烦,到处计算高度、宽度等,千万大量代码的冗余,对维护和开发的效率都很低。

    笔者在这里介绍纯代码自动布局的第三方库:Masonry。这个库使用率相当高,在全世界都有大量的开发者在使用,其star数量也是相当高的。

    效果图

    本节详解Masonry的循环创建视图,并且可以展开与收缩的用法,先看看效果图:

    image

    当我们点击某一行时,可以展开:

    image

    核心代码

    看下代码:

    讲解

    当我们要收起的时候,只是简单地设置其高度的约束为40,但是当我们要展开时,实现起来就相对麻烦了。因为我们需要重新添加约束,要重新给所点击的视图添加约束,就需要知道前一个依赖视图和后一个依赖视图的约束,以便将相关联的都更新约束。

    当我们更新所点击的视图时,我们通过判断是否有前一个依赖视图来设置顶部约束:

    除了这个之外,我们也需要更新后一个视图的约束,因为我们对所点击的视图调用了mas_remakeConstraints方法,就会移除其之前所添加的所有约束,所以我们必须重新将后者对当前点击的视图的依赖重新添加上去:

  • 相关阅读:
    Zabbix实现企业微信(WeChat)告警
    Zabbix使用腾讯企业邮箱发送警报邮件,在微信查看警报邮件
    centos7安装pip
    zabbix源码安装3.4.11客户端和yum安装4.2.1客户端
    zabbix中文乱码解决
    centos7配置阿里yum源替换centos自带的yum源(其他镜像yum源配置相似)
    CentOS7.5下Redis5.0.5安装与配置
    LVS+Keepalived搭建高可用负载均衡
    centos7配置双ip(内外网均可访问)
    NSMutableAttributedString 的使用
  • 原文地址:https://www.cnblogs.com/jiayongqiang/p/5339622.html
Copyright © 2011-2022 走看看