我有一个包含 ScrollView 的 View 。当 View 显示时,图像以全屏 (320x480) 显示,隐藏状态和导航栏。当我点击屏幕时 - 状态和导航栏出现在屏幕上。但是这个东西将 UIScrollView 移到导航栏下方。我希望状态和导航栏显示在我的 ScrollView 上。
就像它发生在照片应用程序中一样。点击图像时,状态和导航栏会显示在 ScrollView 上。
下面是我如何定位 View
//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];
我没有看到这个问题。但这弄乱了我的横向代码。
任何可以阐明我可能做错了什么的人 - 都会有很大的帮助!
最佳答案
切换导航工具栏时,UIScrollView
中似乎有一些特殊处理。正如您在问题末尾指出的那样,如果将 ScrollView 放在包含 UIView
中,则不会发生此重新定位问题。
要解决横向问题,请确保在容器 View 和 ScrollView 上都设置了 autoresizingMask
。我不必在我的项目中为横向模式添加任何额外的处理。
关于iphone-sdk-3.0 - UIScrollView 在导航和状态栏下方移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1192195/