我有一个带有分页滚动视图的视图控制器,该页面向用户显示数据页面。当用户在滚动到下一页/上一页的中间时旋转设备时,我无法使滚动视图“跳到”页面。

我在本机照片查看器应用程序中注意到,滚动期间基本上禁用了旋转。我正在尝试模仿这种行为。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (isScrolling)
        return interfaceOrientation == self.interfaceOrientation;
    return YES;
}

问题是我需要某种方式告诉运行时我已经准备好更改方向。类似于setNeedsLayout的东西,但适用于View Controllers。
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
    isScrolling = NO;
    //something to get the interface orientation updated
}

这是一个小问题,但是却让我发疯。有任何想法吗?

最佳答案

纯粹是猜测,但也许尝试这样的事情?

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
    [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
}

10-06 02:55