查看不完全覆盖整个屏幕
我再次搜索了大约45分钟的答案这个问题,我想我可能已经找到了答案,但那时我正在阅读的情况并不完全像我一样正在跑进去。查看不完全覆盖整个屏幕
当我加入我的观点看来,这不是一个完全遮住窗户我能在上面摆脱了状态栏,但有在底部的间隙部的观点并没有覆盖
alt text http://img177.imageshack.us/img177/8844/picture1zjv.png
从屏幕截图中可以看到有一个橙色条......它是橙色的,因为我知道它实际上是在那里(它是viewController的视图,但是我尝试的所有东西我似乎无法获得添加视图覆盖屏幕
这是唯一运行的代码
- (void)viewDidLoad {super viewDidLoad]; [self.view addSubview:mainMenu]; }
任何帮助,将不胜感激。
有几件事情可能会出错:
您的框架可能太短。在viewDidLoad:
您可以添加调试语句来检查它的高度:
NSLog(@"Height is %f", self.view.frame.size.height);
看起来你想要的值是480,屏幕的最大高度。
您的来源可能太高。同样地检查你的y偏移:
NSLog(@"y origin is %f", self.view.frame.origin.y);
看起来你想要的数值为0
的上海华盈的起源可能太高。假设你这种观点只有一个上海华盈,这个代码将有助于检查你的观点的起源的绝对坐标:
CGPoint absoluteOrigin = [self.view convertPoint:self.view.frame.origin
toView:self.view.superview];
NSLog(@"y origin in superview is %f", absoluteOrigin.y);
你可以只是一些额外的.superview
的标签查找出的坐标在之前的条款观点。
顺便说一句,而不是仅仅使用480代码中的幻数,你可能想要做这样的事情来获得全高:
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
CGFloat screenHeight = appFrame.size.height;
的applicationFrame
属性考虑是否不显示状态栏。
你应该张贴你的代码,但在一般情况下,你可以做一个UIView填满屏幕如下:
UIView *foo = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,480)];
而且您以后可以设置帧:
foo.frame = CGRectMake(0,0,320,480);
填补了屏幕上,您应该在原点(0,0)使用320 x 480的矩形。这就是上面创建的CGRectMake函数的作用。
我创建通过界面生成器所有的意见......我应该还是这样做是为了确保它填补了屏幕? – BWC 2009-08-14 03:57:40
那么,如果你在你的ViewController的ViewDidLoad函数中调用它,那么这将工作,但我不知道如何使用Interface Builder。我以编程方式做所有事情。 – 2009-08-14 04:22:39
我以前有过这个问题,我只是通过将视图向下移动20个像素来修复它...... 当您使用接口构建器时,它具有那个漂亮的小“模拟状态栏”或“模拟工具栏”功能,但我认为它是一种芬尼。
安德鲁和泰勒斯的答案都应该可以工作,但不要以编程方式处理事情。如果你在界面生成器中创建东西,那么只需安德鲁的第二行,不需要重新初始化。
好吧,我想通了,现在我觉得有点愚蠢......我回到IB并意识到每个视图的高度设置为460而不是480 ...你们给我一个一堆好的信息,我很欣赏这一切。我希望我可以将它们全部标记为答案。
再次感谢您, BWC
仅供参考这可能是由你可以在IB中调整的模拟指标引起的。他们实际调整视图时调整它们。 – Lounges 2009-08-14 18:22:55
谢谢你的信息,我不是使用神奇数字的粉丝 – BWC 2009-08-14 13:42:09