gpt4 book ai didi

ios - iPhone 6 和 iPhone 6 Plus 上页面 View Controller 的奇怪行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:02:04 26 4
gpt4 key购买 nike

我试图用三个页面实现页面 View Controller 。我已经做到了,它在配备 3.5 英寸和 4 英寸显示屏的 iPhone 上运行良好,但在 4.7 英寸和 5.5 英寸显示屏上会出现问题。

我发现隐藏 UIPageViewController 的标准页面控件是导致此错误的原因:当页面控件被隐藏时,UIPageVC 的 View 会更改其高度(+ 页面控件 View 的高度)。

我的页面内容 View Controller 对背景 ImageView 有限制以适应所有尺寸。

这是第一页: This is first page

这是第二页: This is second page

这是第三页,好的,我们已经到了最后一页: This is third page

但看看当我们返回到第二页时会发生什么(页面内容 Controller 的 View 完全向左移动了几个像素): This is again second page

滑动到第一页 - 同样的结果: This is again first page

但是! 看看我们在第一页之后转到第二页时看到了什么!现在通过 x 在正确的位置查看页面内容 Controller : This is second page

转到最后一页: This is the last page

让我们回到第二页!神圣的****! View 再次被某些东西移动: This is the second page

转到第一页,全部在“正确”(错误)位置: This is the first page

从第一页返回第二页。一切都在正确的位置: This is the second page

所以,我的问题是这个 UIPageViewController 是怎么回事?我以为我的约束被打破了,但我的日志中没有任何关于它的信息,在 Storyboard 中没有与约束相关的错误。

当我使用两种方法“presentationCountForPageViewController:, presentationIndexForPageViewController:”时一切正常,但按钮上方出现一条白线,其高度等于页面控件 View 的高度(因此,我需要通过删除上面列出的两种方法来隐藏它)。

提前感谢您 future 的建议!

最佳答案

我修好了!但不是以正确的方式,因为它是 iOS 端的错误。

因此,当您尝试隐藏 UIPageViewController 的页面控制 View 时,私有(private)“pageSpacing”属性在 iPhone 6 和 iPhone 6 Plus 上由于意外原因被破坏。很难从 View 中看到和理解它。在我的例子中,对于 iPhone 6 InterPageSpacing 属性已经减少了 4,对于 iPhone 6 Plus - 减少了 6 个值。因此,如果您尝试为 iPhone 4 或 5 设置 pageSpacing 属性,您会在页面之间看到一条白线,但在 6 和 6 Plus 上,这条线消失并且第二个 Controller 的 View 向左移动几个像素。

现在我只是在初始化我的 UIPageViewController 时为 UIPageViewControllerOptionInterPageSpacingKey 设置了不同的值:

- (id)initWithTransitionStyle:(UIPageViewControllerTransitionStyle)style navigationOrientation:(UIPageViewControllerNavigationOrientation)navigationOrientation options:(NSDictionary *)options
{
NSMutableDictionary *dictionary = [NSMutableDictionary new];
NSNumber *pageSpacing =
IS_IPHONE_4_OR_LESS
? @(0)
: IS_IPHONE_5
? @(0)
: IS_IPHONE_6
? @(4)
: @(6);

[dictionary setValue:pageSpacing forKey:UIPageViewControllerOptionInterPageSpacingKey];

self = [super initWithTransitionStyle:style navigationOrientation:navigationOrientation options:dictionary];
return self;
}

是的,修复是脏的,但我没有找到其他方法来修复它,尤其是因为它是 Apple 的错误。

关于ios - iPhone 6 和 iPhone 6 Plus 上页面 View Controller 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28739582/

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