4
我有UIView
,它有自动布局限制。我创建它与框架CGRectZero
。所以我不是真正的大小。这将取决于超视图。当UIView获得框架时,Autolayout检测到
但我想知道什么时候我的观点得到一个框架,我可以用于我的计算。
我有UIView
,它有自动布局限制。我创建它与框架CGRectZero
。所以我不是真正的大小。这将取决于超视图。当UIView获得框架时,Autolayout检测到
但我想知道什么时候我的观点得到一个框架,我可以用于我的计算。
所以你应该不需要知道任何有关框架。尽管如果您确实需要知道,您可以在视图中实现-layoutSubviews
,或在视图控制器级别实现-viewDidLayoutSubviews
。
在调用super
之后,应该将帧设置为AutoLayout将其解析为的内容。
也是良好的做法,采取的是以下帖子#7:Forget frame。
我也强烈推荐阅读关于AutoLayout流程here。
ok我有一个包含另一个视图的视图B.而视图B有图像。一切都基于自动布局。那么似乎我需要继承UIView B来执行-layouts子视图?因为我对作为视图B一部分的图像感兴趣,所以我需要通过CALayer将顶角半径添加到图像视图。 – 2015-02-11 23:10:19
如果您只需要为图像视图添加角半径,则无需担心帧,只需在视图A的awakeFromNib或其initWithFrame中执行此操作即可。如果你有一个完整的故事板设置,并且你的视图都不是自定义的UIView子类,那么你可以添加一个从视图B到视图控制器的插座,并在viewDidLoad中设置圆角半径。 – Daniel 2015-02-11 23:13:59
虽然如果您忘记了框架,您将如何处理图层更改?那么当你处理'CGRect'值时,不一定直接与视图相关? – BridgeTheGap 2016-06-14 12:21:15