故事板中定义的显式布局边距在运行时被丢弃

时间:2016-07-03 18:00:37

标签: xcode uiview autolayout storyboard

在我的故事板中,我将视图上的布局边距设置为显式,左侧为30。

enter image description here

故事板编辑器视图中的一切看起来都很好:

enter image description here

...但是当我启动我的应用时,布局边距会回到默认值(8,8,8,8):

enter image description here

尝试以编程方式(<template> <tr> <td>{{ cast.name }}</td> </tr> </template> <script> export default { props: { cast: Object }, } </script> )读取值会再次显示默认值。好像无论我在布局边距中设置了什么值,它在运行时都没有任何作用。

重现:

  1. 在IB中创建一个新的视图控制器。
  2. 添加视图并将布局边距设置为显式(30,8,8,8)
  3. 为视图创建顶部,左侧,宽度和高度约束。
  4. 为视图提供背景颜色,以便判断标签是否正确缩进。
  5. 添加标签作为该视图的子视图,并将其固定到顶部和左侧边距。
  6. 请注意,在故事板中,标签的左侧缩进了30个像素。
  7. 运行该应用。注意标签如何丢失其30像素缩进,而是恢复到默认的8像素。
  8. 注意:我使用Xcode 7。

1 个答案:

答案 0 :(得分:0)

看起来它已在Xcode 8中修复。

但是,如果您尝试阅读layoutMargins中的viewDidLoad值,则不会报告故事板中设置的值。您必须等到调用以后的方法(例如viewDidAppear)才能看到正确的值。