gpt4 book ai didi

iphone - Nimbus NIPagingScrollView 和旋转重新布局

转载 作者:行者123 更新时间:2023-12-01 16:58:52 25 4
gpt4 key购买 nike

我正在使用 NIPagingScrollView在 iPhone 上显示多个页面。

每次我翻到一个页面,下一页也被预先加载,这很好。

当我旋转 iPhone从纵向模式到横向模式,我让layoutSubviews在我的 NIPageView 子类中重新布局. NIPagingScrollView设置为自动拉伸(stretch)宽度和高度以保持全屏显示。这适用于当前页面。

但是当我翻到下一页时,布局被破坏了,因为它之前是预取的,并且还通过自动调用 layoutSubviews 进行了布局。 .

我猜原点在下一页上没有更新,或者类似的东西。

有人提示我如何避免这个问题(除了不使用景观)?这是 Nimbus 中的错误吗?

编辑:我发现 NIPagingScrollView提供方法willRotateToInterfaceOrientation:duration:willAnimateRotationToInterfaceOrientation:duration:应该由 View Controller 调用。我实现了这些调用,但它仍然没有帮助。

最佳答案

确实 NIPagingScrollView提供了这些方法,但是如果您查看它们,您会发现布局计算是基于 ScrollView 框架值的。

因此,如果您希望为分页 ScrollView 提供正确的值,例如,将框架或主视图( Controller View )提供给分页 ScrollView (示例中的 _scrollView)。

这样,就在动画之前,您的分页 ScrollView 将具有正确的等待帧,并且您的布局将被正确重新计算。

- (void)willAnimateRotationToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation
duration: (NSTimeInterval)duration {

// Your missing line of code to set the scroll view frame values
[self->_scrollView setFrame:self.view.bounds];

[self->_scrollView willAnimateRotationToInterfaceOrientation: toInterfaceOrientation
duration: duration];

[super willAnimateRotationToInterfaceOrientation: toInterfaceOrientation
duration: duration];

}

关于iphone - Nimbus NIPagingScrollView 和旋转重新布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9043940/

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