簡體   English   中英

Nimbus NIPagingScrollView和旋轉時的重新布局

[英]Nimbus NIPagingScrollView and Re-Layouting on Rotation

我正在使用NIPagingScrollView在iPhone上顯示多個頁面。

每當我滑動到一頁時,也會預加載下一頁,這很好。

當我 iPhone從縱向模式旋轉到橫向模式時,我可以使用layoutSubviewsNIPageView子類中進行重新布局。 NIPagingScrollView設置為在寬度和高度上自動拉伸以保持全屏顯示。 這適用於當前頁面。

但是,當我輕拂到下一頁時,布局被破壞了,因為它是之前被預取的,並且還通過自動調用layoutSubviews進行布局。

我猜原點不會在旋轉的下一頁上更新,或者類似的東西。

有沒有人暗示過我如何避免這個問題(除了不使用“風景”之外)? 這是Nimbus中的錯誤嗎?

編輯:我發現NIPagingScrollView提供了方法willRotateToInterfaceOrientation:duration:willAnimateRotationToInterfaceOrientation:duration:應當由視圖控制器調用。 我實現了這些調用,但仍然無濟於事。

NIPagingScrollView確實提供了這些方法,但是如果您看一下它們,就會發現布局計算是基於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];

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM