iOS 使用自动布局的一些相关开发技术
本文最后更新于 2021年4月4日 晚上
日常开发中需要多种技术来提高界面开发和 Debug 效率, 这里介绍一些常用方法.
文中大部分内容来源: WWDC.
在日常开发活动中, 特别是在自动布局时, 经常遇到需要 Debug 以解决布局问题的场景, 这个时候就需要一些技术来提高整体效率, 下面就来介绍一些常用办法.
自动布局时, 可以为约束设置 identifier, 以便快速查找问题约束来源.
可以在 debug 时打印视图的约束:
通过视图的 constraintsAffectingLayout(for:)
方法来查看该视图沿某个轴上的所有约束, 如下图所示:
可以通过
UIView
对象的exerciseAmbiguityInLayout()
方法来查看该 View 对象上有歧义的约束列表.可以通过
UIView
对象的hasAmbiguousLayout
方法查看该对象是否有有歧义的约束.针对视图约束的改变, 有两大类:
激活/废除: 正常的做法是通过 active 或 deactive 来激活或废除约束, 而非直接添加或是删除约束(不过要注意: 绝不要在视图控制器内将自己的
view
中的约束废除). 改变约束后, 可以在动画块中调用layoutIfNeeded
来进行动画.修改常量或优先级: 可以设置约束的常量或优先级来改变约束效果.
- 针对使用自动布局的场景, 通常先考虑使用
UIStackView
进行自动布局, 再考虑添加约束的方式完成自动布局.
iOS 使用自动布局的一些相关开发技术
https://blog.rayy.top/2018/10/13/2019-12-layoutDebug/