iOS 使用自动布局的一些相关开发技术

本文最后更新于 2021年4月4日 晚上

日常开发中需要多种技术来提高界面开发和 Debug 效率, 这里介绍一些常用方法.

文中大部分内容来源: WWDC.

在日常开发活动中, 特别是在自动布局时, 经常遇到需要 Debug 以解决布局问题的场景, 这个时候就需要一些技术来提高整体效率, 下面就来介绍一些常用办法.

  1. 自动布局时, 可以为约束设置 identifier, 以便快速查找问题约束来源.

  2. 可以在 debug 时打印视图的约束:

通过视图的 constraintsAffectingLayout(for:) 方法来查看该视图沿某个轴上的所有约束, 如下图所示:

  1. 可以通过 UIView 对象的 exerciseAmbiguityInLayout() 方法来查看该 View 对象上有歧义的约束列表.

  2. 可以通过 UIView 对象的 hasAmbiguousLayout 方法查看该对象是否有有歧义的约束.

  3. 针对视图约束的改变, 有两大类:

  • 激活/废除: 正常的做法是通过 active 或 deactive 来激活或废除约束, 而非直接添加或是删除约束(不过要注意: 绝不要在视图控制器内将自己的 view 中的约束废除). 改变约束后, 可以在动画块中调用 layoutIfNeeded 来进行动画.

  • 修改常量或优先级: 可以设置约束的常量或优先级来改变约束效果.

  1. 针对使用自动布局的场景, 通常先考虑使用 UIStackView 进行自动布局, 再考虑添加约束的方式完成自动布局.

iOS 使用自动布局的一些相关开发技术
https://blog.rayy.top/2018/10/13/2019-12-layoutDebug/
作者
貘鸣
发布于
2018年10月13日
许可协议