【发布时间】:2015-04-20 12:34:52
【问题描述】:
我正在 Storyboard 中使用 AutoLayout,一切似乎都很顺利。但是,当我将一个 UIView 放入另一个 UIView 并对容器及其子级应用我想要的所有约束时,我注意到 viewDidLayoutSubviews: 中的框架不正确。鉴于我的限制,它不是我期望计算的框架,而是一些令人作呕的大框架(尽管在正确的原点)。例如,我得到的不是 {{26, 10}, {444, 10}} 的框架,而是 {{0, 0}, {320, 568}}时间>。
奇怪的是,当我将子 UIView 置于另一个 UIView 中时,这种情况仅发生,该 UIView 对其父视图(即视图控制器的视图)应用了一些约束。由于我的印象是,我可以期望我的视图会根据我在方法 viewDidLayoutSubviews: 中的约束得到适当的布局,所以我对为什么会发生这种情况感到困惑。
我是否做出了不正确的假设?如果有人可以帮助我指出正确的方向,我将不胜感激。谢谢!
注意:如果我在 viewDidAppear: 中进行依赖于正确帧的设置,这个问题将完全解决,但这对我来说是一个有点不满意的解决方法。
【问题讨论】:
-
@Er.ShreyanshShah 感谢您的回复。但是,我实际上正在使用 AutoLayout,因此很遗憾禁用它对我不起作用。我提到我当时依赖于一个正确的框架,这仅仅是因为我在这个视图中做一些简单的 CAShapeLayer 绘图,其层框架需要超级视图边界属性正确
标签: ios cocoa-touch uiview autolayout uistoryboard