我有一个 UIView 的子类,它使用 CAShapeLayers 在自身上绘制图片。我希望绘图适应 AutoLayout 给出的 UIView 的任何大小。我给它一个drawGraph()
函数,从它获取当前大小.bounds.size
,然后绘制一张适合的图片。
我首先在容器 UIViewController's 中调用我的绘图函数viewDidLoad()
,但此时布局尚未发生,因此它具有故事板中的任何边界。
我尝试从视图控制器调用它viewDidLayoutSubviews()
,但这也不完全令人满意。它被调用了两次:首先使用情节提要的边界,然后再次使用更新的(正确的)边界。两者之间有一个暂停,因此用户可以看到绘制和重绘。
如何判断 UIView 是否已应用其布局约束并准备好为我提供准确的尺寸?