考虑上面的屏幕截图。 UIView位于顶部太多,导致上部测试线部分关闭,底部屏幕显示间隙。屏幕截图还在IB中显示其对应的定位值:x = 0和y = 20.因此,实际上有一个偏移(y = 20)默认清除顶部状态栏。但是,显示的状态栏仍然涵盖了UIView的一部分。
x,y条目显示为灰色,因此似乎无法更改其值。花了很长时间但仍然无法解决这个看似简单的问题。希望熟悉这一点的人能够对如何做到这一点给出一些暗示。
更新:
按照建议在代码中完成了。它似乎工作正常。如果您发现任何错误,请告诉我......
- (void)viewDidLoad
{
CGRect position_and_size;
CGPoint cg_point;
CGSize cg_size;
[super viewDidLoad];
// setup after loading the view from its nib.
NSLog(@" --- Screen loaded --- ");
cg_size.width = 320;
cg_size.height = 460;
cg_point.x = 0;
cg_point.y = 20;
position_and_size.origin = cg_point;
position_and_size.size = cg_size;
[[self view] setFrame : position_and_size];
}
以下是最新的截图:
答案 0 :(得分:1)
您可以通过编程方式修复它:
[yourSubView setFrame:self.view.bounds];
假设self.view
- 父视图,它应该适合它。
答案 1 :(得分:1)
问题是你在一个480像素高的窗口放置一个高达460像素的视图{0,0}。因此,视图的前20个像素最终位于状态栏下方,并且视图无法覆盖窗口的底部20个像素。您可以通过以下任何方式解决此问题:
更改自动调整大小选项,以便自动调整视图的大小以填充窗口。
调整视图大小以匹配窗口的边界,无论是在代码中还是在IB中。
将视图置于{0,20},代码或IB中。