如何在CAShape层上显示UIImage?
问题描述:
我无法在CAShapeLayer
前画一个UIImage
。我在背景中有一个矢量图像,前面有一个图标。这个矢量很重要,因为我最终会缩放这个动画;我有很多这些在屏幕上,因此为了表现,我想在低于一系列UIImageView
子视图的情况下做到这一点。如何在CAShape层上显示UIImage?
我已经试过:
- 容器视图的层类型设置为
CAShapeLayer
- 添加
CAShapeLayer
作为我的容器视图的子 - 设置我的容器的层和/或子层的
content
到图片的CGImage
- 在容器视图的手动绘制图像的
drawRect
(我的Quartz-fu很弱,虽然)
在大多数情况下,我得到的形状背后绘制(我隐约明白,这是由于如何CAShapeLayers
复合本身)或根本没有图像。当然,这是可能的,而不诉诸子视图?
答
您是否尝试将子图层的z位置设置为正值?默认值为0.0,因此使其大于零会使其在层次结构中“更高”。
我试过'insertSublayer:above'和'insertSublayer:below',我认为它必须做同样的事情。我想我错过了更基本的东西。 – 2011-04-04 13:29:39
我不认为它做同样的事情。据我记忆,它只重新排列sublayers数组中的对象,它不会改变它们的zPosition。 – 2011-04-04 13:40:50
啊,你说得对。该文档说:'将图层插入到接收方的子图层数组中,在指定的子图层上方。“我认为它会调整Z指数,但事实并非如此。 – 2011-04-04 14:31:05