的UIScrollView转移下面的导航和状态栏(UIScrollView shifts below

2019-07-30 22:02发布

我有鉴于它包含一个滚动视图。 当视图中显示了图像显示在全屏幕(480)隐藏状态和导航栏。 当我点击屏幕 - 状态和导航栏出现在屏幕上。 但是,这件事情将这个导航栏下面的UIScrollView。 我想要的状态和导航栏显示在我的滚动视图。

就像它发生在照片应用。 轻敲图像状态和导航栏显示在滚动视图。

下面是我如何定位我的观点


//What I have done in viewDidLoad
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
self.wantsFullScreenLayout = YES;
scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
self.view = scrollView;

下面是我在做什么检测上的一个水龙头


- (void)tapDetectingImageView:(TapDetectingImageView *)view             gotSingleTapAtPoint:(CGPoint)tapPoint {
    // single tap hide/unhide the status and nav bar
    NSLog(@"got a single tap");
    if (self.navigationController.navigationBarHidden == NO)
    {

        [self.navigationController setNavigationBarHidden:YES animated:NO];
        [[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
    }
    else
    {
        [[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
        [self.navigationController setNavigationBarHidden:NO animated:NO];
    }
}

对你们只是一个指针 - 如果我使用

 [self.view addSubview:scrollView]; 
我没有看到这个问题。 但这个烂摊子了我的横向代码。

任何人谁可以阐明一些我可能是做错了 - 将是很大的帮助!

Answer 1:

似乎有一些特殊的处理里面UIScrollView当导航工具栏切换。 当你在你的问题的最后指出,如果你把里面包含滚动视图UIView ,不会出现此问题的重新定位。

要解决这个问题,景观,确保你设置autoresizingMask两个容器视图和滚动视图。 我没有要补充的景观模式的任何额外的处理在我的项目。



Answer 2:

我找到了解决办法喽。 在我的自来水检测代码的其他FN我添加了下面一行在最后。

scrollView.contentOffset = CGPointMake(parentScrollView.contentOffset.x,0);

不知道这是正确的做法。 但是,如果任何人都可以提出一个更好的方法 - 更受欢迎!



文章来源: UIScrollView shifts below navigation and status bar