gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 05:34:48 25 4
gpt4 key购买 nike

我的应用程序有一个多 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com