objective-c - 刷新 UIViewController 的界面方向

标签 objective-c ios user-interface uiviewcontroller

我有一个带有分页 ScrollView 的 View Controller ,向用户显示数据页面。当用户在滚动到下一页/上一页的过程中旋转设备时,我无法让 ScrollView “对齐”页面。

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

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

问题是我需要一些方法来告诉运行时我已经准备好改变我的方向了。类似于 setNeedsLayout 的东西,但适用于 View Controller 。
- (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];
}

关于objective-c - 刷新 UIViewController 的界面方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7432551/

相关文章:

cocoa - 如何从 NSObject 实例关闭窗口

objective-c - 不使用 openURL :url 打开 Mobile Safari

iphone - 我得到了一个 EXC_BAD_ACCESS,我似乎无法找出原因

ios - 在 Swift 打印中调用电话但崩溃

ios - iPad Landscape 和 Portrait 具有 Size Class 的不同布局

java - 我需要帮助概念化我的 GUI 实现

ios - 是否可以将QRCode图像解码为值

iOS11自定义导航栏高度

iphone - 获取某个CGPoint下的 View 列表

JavaFX setCellFactory 未设置我的项目