autolayout - iOS 8 UIPageViewController 在转换后应用约束

标签 autolayout ios8 xcode6 uipageviewcontroller

我的应用程序有一个多 Pane 教程式 View ,用户可以通过滑动来了解该应用程序。这与 described in this tutorial 的实现非常相似。 。在 iOS 7 和 8 上实现它后,我正在比较它们的工作方式,并发现后者的问题 - 我在这里运行 Xcode 6 GM。

看起来 UIPageViewController 正在转换完成后渲染 View 。我重写了委托(delegate)方法来查看发生了什么:

- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers
{
   NSLog(@"Frame size before: %@", NSStringFromCGRect([(UIViewController*)pendingViewControllers[0] view].frame));
}

- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
   NSLog(@"Frame size after: %@", NSStringFromCGRect([(UIViewController*)previousViewControllers[0] view].frame));
}

这是一个示例输出:

Frame size before: {{0, 0}, {600, 600}}
Frame size after: {{0, 0}, {320, 568}}

其表现如下:向左滑动以拉入下一个 View ,并注意新 View 底部的 32 磅空白。一旦转换完成,它就会猛然进入正确的布局。

这可能是 iOS 8 中的一个错误吗?我现在已经无法猜测了。

最佳答案

我发现您需要将约束基于 View 而不是 View Controller 的布局指南。这将确保您的 View Controller 遵守您在 PageViewController 中转换之前设置的约束。

你可以这样做:

Constraints example

记住取消选中“限制边距”

关于autolayout - iOS 8 UIPageViewController 在转换后应用约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25791183/

相关文章:

autolayout - 考虑到 iPhone X 设计时避免对称安全区域

ios - UITextDocumentProxy adjustTextPositionByCharacterOffset 问题

keyboard - iOS 8 : Keyboard Extension. 添加弹出键的问题

ios - Google Analytics 未在 Swift 中初始化

ios - UIButton 背景图像的大小与自动布局不正确?

iOS 8 AutoLayout ScrollView 在 iPhone 6 plus 上水平滚动

ios设置约束以动画图标

ios - 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout

ios - dyld : Library not loaded: @rpath/libswiftCore. 动态库。问题依然存在

git - 在 Xcode 中标记提交