【问题标题】:How do I set a UIView image UIImageView to the background?如何将 UIView 图像 UIImageView 设置为背景?
【发布时间】:2024-01-19 23:06:01
【问题描述】:

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

我是否需要让我的背景图片具有透明的 Alpha 区域? (如果我的术语是正确的)或者将图像的背景设置为白色或黑色或任何需要的图像是否可以(基于它将在背景中,所以这可以)

【问题讨论】:

    标签: iphone ios uiview uiimageview


    【解决方案1】:

    你不能:视图是在它们的父视图之上合成的,这意味着如果你的自定义视图在 -drawRect: 中绘制,它总是会出现在 UIImageView 下。

    实现您想要的效果的最简单方法是将图像视图放在 IB 中的自定义视图下。

    背景图像通常不需要透明度(如果 PNG 没有 alpha 通道,则速度会稍微加快)。

    【讨论】:

      【解决方案2】:

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

      示例

      - (void)drawRect:(CGRect)rect {
          [backgroundImage drawInRect:rect];
      
           /* Do rest of your drawing */
      }
      

      现在这仅适用于您使用复杂图像的情况。如果是纹理,您宁愿使用UIColorcolorWithPatternImage: 方法从UIImage 对象中获取颜色并设置自定义视图的backgroundColor。请记住,使用colorWithPatternImage: 不会在绘制时缩放图像,并且如果源图像小于视图框架,则会平铺。

      【讨论】: