首页 文章

在Xcode中,它具有'final'视图?:对齐矩形或视图的框架

提问于
浏览
0

我对视图的对齐矩形属性与相同视图的frame属性之间的关系仍然有点模糊 .

我知道作为开发人员,我们不能直接在代码中更改对齐矩形属性,并且我们可以通过接口构建器中的约束来操作它 . 我也知道(或者我想我知道)对齐矩形属性比CGRect有更多的值,即Top,Left,Right,Bottom,Leading,Trailing,Baseline等......

我不明白的是这两者如何在视图中一起发挥作用 .

当你看到一个对它有约束的视图时,比如一个UILabel,原来的CGRect框架属性是否已经被使用了?或者为该视图接管了Alignment矩形属性(使其响应并在运行时计算宽度/高度/原点位置)?

本书建议很少使用视图,其中框架是一个简单的CGRect对象,具有x和y原点,以及固定的宽度/高度,而是使用与视图的对齐矩形属性有关的约束 .

所以基本上..我有一个标签,你已经设置约束,框架现在'响应',视图的框架属性甚至仍在使用?如果是这样,怎么样和为什么?

谢谢

1 回答

  • 3

    视图的框架低于自动布局 . 框架存储视图占据的矩形;而已 . 在绘制视图,处理触摸等时,UIKit使用视图的框架 . 框架是视图的当前位置和大小;没有别的 .

    自动布局在运行时设置视图's frame. If you use Auto Layout to specify constraints for a view, Auto Layout will calculate the frame the view should have base on and set that frame into it' s frame 属性 .

    自动布局由layoutSubviews()UIViewwhich runs when the view is added as a subview or its size is changed运行 . 您可以自己设置 frame ,但下次 layoutSubviews() 运行时将通过自动布局重置 .

相关问题