如何在CAShape层上显示UIImage?

问题描述:

我无法在CAShapeLayer前画一个UIImage。我在背景中有一个矢量图像,前面有一个图标。这个矢量很重要,因为我最终会缩放这个动画;我有很多这些在屏幕上,因此为了表现,我想在低于一系列UIImageView子视图的情况下做到这一点。如何在CAShape层上显示UIImage?

我已经试过:

  • 容器视图的层类型设置为CAShapeLayer
  • 添加CAShapeLayer作为我的容器视图的子
  • 设置我的容器的层和/或子层的content到图片的CGImage
  • 在容器视图的手动绘制图像的drawRect(我的Quartz-fu很弱,虽然)

在大多数情况下,我得到的形状背后绘制(我隐约明白,这是由于如何CAShapeLayers复合本身)或根本没有图像。当然,这是可能的,而不诉诸子视图?

您是否尝试将子图层的z位置设置为正值?默认值为0.0,因此使其大于零会使其在层次结构中“更高”。

+0

我试过'insertSublayer:above'和'insertSublayer:below',我认为它必须做同样的事情。我想我错过了更基本的东西。 – 2011-04-04 13:29:39

+0

我不认为它做同样的事情。据我记忆,它只重新排列sublayers数组中的对象,它不会改变它们的zPosition。 – 2011-04-04 13:40:50

+0

啊,你说得对。该文档说:'将图层插入到接收方的子图层数组中,在指定的子图层上方。“我认为它会调整Z指数,但事实并非如此。 – 2011-04-04 14:31:05