Apple Interface Builder:将子视图添加到UIImageView

时间:2010-03-10 09:00:08

标签: interface-builder uiimageview subview addsubview

我在Interface Bulder的帮助下创建了UIImageView。现在我想在其中放置标签(作为其子视图)。在代码中我可以键入类似的内容:[myUIImageView addSubview:myUILabel];但是我可以在IB的帮助下完成吗?我找到了UIView的解决方案,但找不到与UIImageView类似的内容。

4 个答案:

答案 0 :(得分:111)

您无法在界面构建器中向UIImageView添加子视图,原因仅为Apple所知!你说你可以通过编程方式添加子视图是正确的,但是,设置自动调整掩码和子视图放置的开销都应该在代码中处理,这很麻烦。

所以有一个简单的解决方法。不要在nib中拖动UIImageView的实例,只需拖动UIView并将其类从UIView(检查器的cmd + 4选项)更改为UIImageView。您在nib中为默认的imageView实例和新的UIImageView子类实例找到的唯一区别是:您无法从nib(cmd + 1选项)将图像设置为新的imageView。因此,在其相应viewController的-viewDidLoad方法中,将image设置为UIImageView的这个出口。

通过这样做,您可以自由地在界面构建器中向您的“now UIImageView”实例添加子视图,这很容易。

希望这会有所帮助。 。

答案 1 :(得分:13)

我想补充一下答案。

虽然很难将子视图添加到UIImageView,但您可以通过将UIView与透明(清晰的颜色)背景合并来获得相同的效果。

然后将UIImageview放在它之前。

因此UIView包含子视图,UIImageviewUIView的背景。

我认为这是苹果的意图。

以下是截图:

enter image description here

结果如下:

enter image description here

不要忘记将背景设置为清晰的颜色

enter image description here

现在,如果有人能够指点我的教程如何做到这一点,那就太好了。我花了几个小时做了检查回答的方式。选中的答案是一个很好的答案,但非常不直观,因为你在工作时无法清楚地看到你的背景图像。我认为我的方法是正确的。

答案 2 :(得分:-1)

在最新的XCode(4.5)中,有一个选项可以将所需的控件拖放到父级。

这很容易。 附加屏幕拍摄相同。我将Label / TextField和Button拖到UIImageView enter image description here

答案 3 :(得分:-4)

使用此代码:

UIImage *image = [UIImage imageNamed:@"background.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.view insertSubview:imageView atIndex:0];

(将 background.png替换为图像)(将 atIndex:0 替换为.index根目录中要插入图像和关闭的任何位置。