刷新UIViewController的接口方向

时间:2011-09-15 14:30:39

标签: objective-c ios user-interface uiviewcontroller

我有一个带有分页滚动视图的视图控制器,向用户显示数据页面。当用户在晃动到下一页/上一页的过程中旋转设备时,我无法将滚动视图设置为“对齐”页面。

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

- (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
}

这是一个小问题,但它让我疯了。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

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

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

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