子视图显示下面的主视图

时间:2010-11-11 20:36:03

标签: iphone objective-c uiview subview statusbar

我的应用程序中有这个奇怪的错误。我正在进行子视图并将其绘制在主视图的顶部。为了摆脱它我只是隐藏它。这就是问题所在:在那里我可以看到下面的部分视图从底部窥视一条似乎与状态栏大小相同的线。我已经说明了如何在下面添加我的子视图,以及截图来说明我的问题。

theLaunch = [[firstLaunch alloc] init]; 

[window addSubview:theLaunch.view]; // it goes on top   
[window makeKeyAndVisible];

这是截图...下面的视图是灰色的。 alt text

3 个答案:

答案 0 :(得分:3)

看起来你没有正确的“锚定”子视图。如果在IB中,则可以尝试将子视图附加到包含视图的下边缘。您的“主视图”似乎是为了容纳可用空间(由状态栏的存在而更改),而“子视图”似乎位于(0,0)。这样的事情可能会有所帮助:

alt text

以编程方式,您可以使用UIView的autoresizingMask。类似的东西:

theLaunch.view.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin;

我有多自信这是实际问题?不像我想的那样自信。

答案 1 :(得分:0)

您在哪里为firstLaunch定义用户界面?如果它在nib文件中,则需要theLaunch = [[firstLaunch alloc] initWithNibName:@"firstLaunch" bundle:nil];。如果您手动添加界面元素;你在哪做什么?如果您在ViewDidLoad中手动添加它们,我认为您应该看到它。

答案 2 :(得分:0)

您的图片可能在下方图片显示的位置具有Alpha透明度。如果您不想要这种效果,则应该重新创建没有alphas的图像(完全不透明)。

如果由于某种原因无法重新创建图像,可以尝试将图像视图的opaque属性设置为YES(我不确定这是否可行),或者在图像下方添加另一个视图视图不透明,背景颜色不透明。