2015-02-11 19 views

回答

6

所以你应该不需要知道任何有关框架。尽管如果您确实需要知道,您可以在视图中实现-layoutSubviews,或在视图控制器级别实现-viewDidLayoutSubviews

在调用super之后,应该将帧设置为AutoLayout将其解析为的内容。

也是良好的做法,采取的是以下帖子#7:Forget frame

我也强烈推荐阅读关于AutoLayout流程here

+1

ok我有一个包含另一个视图的视图B.而视图B有图像。一切都基于自动布局。那么似乎我需要继承UIView B来执行-layouts子视图?因为我对作为视图B一部分的图像感兴趣,所以我需要通过CALayer将顶角半径添加到图像视图。 – 2015-02-11 23:10:19

+1

如果您只需要为图像视图添加角半径,则无需担心帧,只需在视图A的awakeFromNib或其initWithFrame中执行此操作即可。如果你有一个完整的故事板设置,并且你的视图都不是自定义的UIView子类,那么你可以添加一个从视图B到视图控制器的插座,并在viewDidLoad中设置圆角半径。 – Daniel 2015-02-11 23:13:59

+1

虽然如果您忘记了框架,您将如何处理图层更改?那么当你处理'CGRect'值时,不一定直接与视图相关? – BridgeTheGap 2016-06-14 12:21:15