我有一个自定义视图,我(在XIB中)创建了一个UIImageView作为子视图。如何使图像视图显示在背景中? (即,在自定义视图中,我可以创建一个显示在顶部的时钟指针)
我是否需要让我的背景图像具有透明度的alpha区域? (如果我的条款是正确的)或者是否可以将图像设置为白色或黑色或任何它需要的背景(基于它将在背景中,这样就可以了)
答案 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:
不会在绘制时缩放图像,如果源图像的视图帧较小,则会平铺图像。