如何将UIView图像UIImageView设置为背景?

时间:2011-06-27 23:07:30

标签: iphone ios uiview uiimageview

我有一个自定义视图,我(在XIB中)创建了一个UIImageView作为子视图。如何使图像视图显示在背景中? (即,在自定义视图中,我可以创建一个显示在顶部的时钟指针)

我是否需要让我的背景图像具有透明度的alpha区域? (如果我的条款是正确的)或者是否可以将图像设置为白色或黑色或任何它需要的背景(基于它将在背景中,这样就可以了)

2 个答案:

答案 0 :(得分:2)

您不能:视图在其超级视图之上合成,这意味着如果您的自定义视图在-drawRect:中绘制,它将始终显示在UIImageView下。

实现您正在寻找的效果的最简单方法是将图片视图放在IB中的自定义视图下。

背景图片通常不需要具有透明度(如果PNG没有alpha通道,则会有轻微的加速)。

答案 1 :(得分:1)

如果要在UIImageView中绘制其余内容,则使用drawRect:对象的另一种方法是直接使用图像。在进行任何绘图之前,在drawRect:中绘制图像。

实施例

- (void)drawRect:(CGRect)rect {
    [backgroundImage drawInRect:rect];

     /* Do rest of your drawing */
}

现在只有在使用复杂图像时才会这样。如果是纹理,您宁愿使用UIColor的{​​{3}}方法从UIImage对象获取颜色并设置自定义视图backgroundColor。请记住,使用colorWithPatternImage:不会在绘制时缩放图像,如果源图像的视图帧较小,则会平铺图像。