snapkit根据不同类型添加子view

snapkit根据不同类型添加子view,第1张

1、在view中心添加一个长宽200的view。

2、在红色view里,添加一个子view,距离顶部30px。

3、添加两个view,高宽相等,绿色的紧靠红色上下排列。

4、添加两个view,高宽相等,左右排列。

5、添加两个view,绿色大小为红色一半,上下排列。

6、添加两个view,绿色在红色里面,内边距设置为依次10、20、30、40。

写这篇文章的原因主要是因为看着布局警告不得劲儿

SnapKit 作为Swift自动布局中较为优秀的三方库,大多数人都会采用,然而在使用过程中会遇到一些奇怪的打印(下文中会列举几个比较常见的),然而并不影响最终展示效果。但是看着这些无用的打印还是比较恶心的,那么如何消除这些打印呢?

1. Unable to simultaneously satisfy constraints.

2. Will attempt to recover by breaking constraint

自动布局完成之后,运行效果如期而至,一看控制台,满屏的打印,大多是以上两种

解决方案如下:

1.Warning_1 中的警告直接忽略掉,千万不要大费周章的挨个去找对应类里面的元素的布局

2.直接去找第二步中的警告所对应的元素

3.在对应元素的对应约束后边添加约束优先级(以Warnng_2中的警告为例)直接统一设置成

make.width.equalTo(1).priority(.low)

4.添加完所有的约束优先级之后运行项目,此时你会发现,控制台警告没了,舒服了。随之而来的是UI可能会出现错乱的情况,只需要非正常的UI控制优先级设置成如下即可:

make.width.equalTo(1).priority(.high)

笔者未对其他情况进行试验,若你遇到了其他情况下的问题欢迎留言!!!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11348601.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存