美文网首页
自动布局-Snapkit学习笔记

自动布局-Snapkit学习笔记

作者: RichieQ | 来源:发表于2021-07-02 14:30 被阅读0次

一、简介

Snapkit是Masonry的oc版本

二、使用以及注意事项

1、等宽、等间距、九宫排列的话,使用SnapKitExtend控件,通过pod 'SnapKitExtend'引用

2、布局之前一定要先添加到父视图上否则会引起崩溃

3、updateConstraints只能用于参照物不变的情况下,否则会崩溃,如>果参照物需要变的话用remakeConstraints

      view2.snp.remakeConstraints { (make) in
           make.top.equalTo(otherView.snp.bottom)
           make.height.equalTo(25)
           make.left.equalToSuperview().offset(10)
           make.right.equalToSuperview().offset(-5)
      }

4、布局更改动画效果的话,一定要在更新完布局后加:>tagetView.layoutIfNeeded()才会起作用

     UIView.animate(withDuration: 0.25) {
            self.oneView.snp.updateConstraints { (make) in                
                 make.height.equalTo(100)
            }
            self.oneView.layoutIfNeeded()
       }

5、两个自适应宽度控件,会导致右边控件的自适应问题,可以通过设置setContentHuggingPriority的“别扯我”优先级,优先级越高,越不会被>拉长变形,比如有两个自使用的UILabel,则设置左边label的优先级比较>高即可

leftLabel.setContentHuggingPriority(UILayoutPriority(rawValue: 888), for: .horizontal)
leftLabel.snp.makeConstraints { (maker) in
   maker.left.equalTo(oneImg.snp_right).offset(16)
   maker.top.equalToSuperview().offset(16)
   maker.height.equalTo(16)
}

rightLabel.snp.makeConstraints { (maker) in
   maker.left.equalTo(leftLabel.snp_right).offset(8)
   maker.top.equalTo(16)
   maker.height.equalTo(16)
}

6、UITableCell自适应问题,可参照“下班不写代码的文章”https://www.jianshu.com/p/60b5f752dc7a

相关文章

网友评论

      本文标题:自动布局-Snapkit学习笔记

      本文链接:https://www.haomeiwen.com/subject/pnyeultx.html