UIView在Xcode 4的IB中定位

时间:2011-11-24 13:39:57

标签: iphone cocoa-touch xcode4

enter image description here

考虑上面的屏幕截图。 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];

}

以下是最新的截图:

screen shot

2 个答案:

答案 0 :(得分:1)

您可以通过编程方式修复它:

[yourSubView setFrame:self.view.bounds];

假设self.view - 父视图,它应该适合它。

答案 1 :(得分:1)

问题是你在一个480像素高的窗口放置一个高达460像素的视图{0,0}。因此,视图的前20个像素最终位于状态栏下方,并且视图无法覆盖窗口的底部20个像素。您可以通过以下任何方式解决此问题:

  • 更改自动调整大小选项,以便自动调整视图的大小以填充窗口。

  • 调整视图大小以匹配窗口的边界,无论是在代码中还是在IB中。

  • 将视图置于{0,20},代码或IB中。