AutoLayout在显示时自动更新位置

时间:2015-01-14 03:40:22

标签: ios objective-c autolayout uipageviewcontroller

我有一个包含多个页面的UIPageViewController,每次滚动到新页面时,内容都会略微位于top layout guide之下。但是当视图最终显示给用户/在中间位置时,它会向下移动,因为它应该已经存在。

我在autolayout中使用storyboards来展示我的内容,并设置了Top Space to Top Layout Guide: 5p

使用UIPageViewController时似乎只会发生这种情况 - 我通常不会AutoLayout遇到此问题,这不是我第一次使用pageview controller {{1}}。

是否有人知道我可以做什么,以便在将视图呈现给用户之前将视图正确放置在顶部布局指南下,因此它一出现就不会跳转?

2 个答案:

答案 0 :(得分:1)

原来这是 iOS8 的问题,可以使用Top Space to View代替Top Layout guide来解决。

我希望这对其他有同样问题的人有所帮助。

答案 1 :(得分:0)

对于可能遇到此问题的其他人。我能找到的与此相关的最佳答案是在此SO响应中,

[问题] iOS 8 UIPageViewController Applying Constraints After Transitions

问题是由于在iOS 8中默认的自动布局行为是与边距对齐,在以前的iOS版本中它是视图边缘。在pageviewcontroller完成动画之后才会计算边距,这是导致视图跳跃的原因。

然而,可以通过取消选择每个约束的对齐边距来修复它。希望这有助于任何人。