我在Interface Bulder的帮助下创建了UIImageView
。现在我想在其中放置标签(作为其子视图)。在代码中我可以键入类似的内容:[myUIImageView addSubview:myUILabel];
但是我可以在IB的帮助下完成吗?我找到了UIView
的解决方案,但找不到与UIImageView
类似的内容。
答案 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
包含子视图,UIImageview
是UIView
的背景。
我认为这是苹果的意图。
以下是截图:
结果如下:
不要忘记将背景设置为清晰的颜色
现在,如果有人能够指点我的教程如何做到这一点,那就太好了。我花了几个小时做了检查回答的方式。选中的答案是一个很好的答案,但非常不直观,因为你在工作时无法清楚地看到你的背景图像。我认为我的方法是正确的。
答案 2 :(得分:-1)
在最新的XCode(4.5)中,有一个选项可以将所需的控件拖放到父级。
这很容易。 附加屏幕拍摄相同。我将Label / TextField和Button拖到UIImageView
答案 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根目录中要插入图像和关闭的任何位置。