Ios UIView获取帧时自动布局检测

Ios UIView获取帧时自动布局检测,ios,ios7,autolayout,ios-autolayout,Ios,Ios7,Autolayout,Ios Autolayout,我有一个具有自动布局约束的UIView。我用frameCGRectZero创建它。所以我不知道真正的尺寸。这将取决于superview 但是我想知道我的视图什么时候得到一个框架,我可以用它来计算。所以你不需要知道关于这个框架的任何事情。尽管您确实需要知道,但您可以在视图中实现-layoutSubviews,或者在视图控制器级别实现-viewdilayoutsubviews 在调用super后,应将帧设置为AutoLayout解析的帧 下面的第7篇文章也是一个很好的实践: 我还强烈建议阅读有关自动

我有一个具有自动布局约束的
UIView
。我用frame
CGRectZero
创建它。所以我不知道真正的尺寸。这将取决于superview


但是我想知道我的视图什么时候得到一个框架,我可以用它来计算。

所以你不需要知道关于这个框架的任何事情。尽管您确实需要知道,但您可以在视图中实现
-layoutSubviews
,或者在视图控制器级别实现
-viewdilayoutsubviews

在调用
super
后,应将帧设置为AutoLayout解析的帧

下面的第7篇文章也是一个很好的实践:


我还强烈建议阅读有关自动布局过程的内容。

好的,我有一个视图a,其中包含另一个视图B。视图B有图像。一切都基于自动布局。然后,我似乎需要将UIView B子类化以执行-布局子视图?因为我对视图B的一部分图像感兴趣。我需要通过CALayer向图像视图添加上角半径。如果您只需要向图像视图添加角半径,那么您不需要担心帧,只需在视图a的awakeFromNib中或在它的initWithFrame:。如果你有一个完整的故事板设置,并且没有一个视图是自定义UIView子类,那么你可以只从视图B添加一个出口到视图控制器,并在viewDidLoad内部设置角半径。但是如果你忘记了框架,你将如何处理层的更改?当您处理
CGRect
值时,不一定要直接连接到视图。通常情况下,您可能不需要知道帧,但在我的例子中,我有一个模板图像,我想为其设置背景色,并想计算半径,使其在圆形图像后面遮罩为一个圆。因此,我需要知道图像视图的帧,并对其进行硬编码,使其感觉脏。但是,LayoutSubview似乎不适合我。(它位于UITableViewCell子类中,并且imageview是圆形附件视图)