ios – 如果在带有自动布局的IB中设置了视图,如果您尝试以编程方式更改其帧,会发生什么?

前端之家收集整理的这篇文章主要介绍了ios – 如果在带有自动布局的IB中设置了视图,如果您尝试以编程方式更改其帧,会发生什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我开始帮助的项目之前没有使用自动布局,我正在更新它以使用自动布局和大小类.整个应用程序中有相当数量的帧操作代码(例如直接设置框架而不是更改约束常量),我想知道这是如何影响使用自动布局约束设置的视图.

我正在努力消除代码的帧更改部分并将其更改为在需要时更新约束常量,但由于我还不是100%熟悉每个代码的工作原理,因此它对更好地了解自动布局和编码帧更改如何相互影响,以便如果视图在运行时没有正确显示,我可以更好地确定它是我设置的东西,还是某个需要的某个旧代码发现并更新.

解决方法

这很简单.你只需要了解自动布局是什么.

这是它的工作原理.约束只是一个指令列表;他们自己实际上并没有做任何事情.有一个系统消息layoutSubviews,它是在你无法控制的时刻发送的 – 所以你应该想象它可以随时发送.实际发送layoutSubviews时,会查询和遵守约束(通过执行您要执行的操作 – 也就是说,运行时设置每个视图的帧或边界和中心).

因此,您可以自由地更改视图的框架,但请注意,如果发送layoutSubviews并且约束不同意您设置的框架,则视图将跳回到约束所说的位置.

原文链接:https://www.f2er.com/iOS/327756.html

猜你在找的iOS相关文章