苹果界面生成器:添加子视图到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
有子视图, UIImageview
是UIView
的背景。
我认为这是苹果的意图。
这是一个截图:
结果如下:
不要忘记将背景设置为清晰的颜色
现在,如果有人能真正指向我的教程如何做到这一点,那就太好了。 我花了几个小时做了检查回答的方式。 检查的答案是一个很好的答案,但非常不直观,因为你工作时看不清你的背景图像。 我认为我的做法是正确的。
在最新的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。