苹果界面生成器:添加子视图到UIImageView

我在Interface Bulder的帮助下创build了UIImageView 。 现在我想把标签放在里面(作为它的子视图)。 在代码中,我可以input如下内容: [myUIImageView addSubview:myUILabel]; 但是我可以在IB的帮助下做到吗? 我find了UIView的解决scheme,但无法find类似的UIImageView

你不能在界面生成器中为UIImageView添加子视图,原因只有在于苹果已知! 你说得对,你可以以编程的方式添加子视图,但是,设置子视图的自动调整掩码和位置的开销都应该在代码中处理,这很麻烦。

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

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

希望这可以帮助 。 。 。

我想补充答案。

虽然它糟透了,你不能将子视图添加到UIImageView ,你可以通过将UIView与透明(纯色)背景相结合来获得相同的效果。

然后把UIImageview放在它之前。

所以UIView有子视图, UIImageviewUIView的背景。

我认为这是苹果的意图。

这是一个截图:

在这里输入图像描述

结果如下:

在这里输入图像描述

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

在这里输入图像描述

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

在最新的XCode(4.5)中,可以select将所需的控件拖放到父级。

这很容易。 附加的屏幕截图相同。 我将标签/文本字段和button拖到UIImageView 在这里输入图像描述

使用此代码:

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

用imagereplacebackground.png )(将inIndex:0replace为要插入图像的.index根目录中的任意位置,然后closures。