0
我有一个UIView子类,它实例化其图层的三个兄弟子图层。其中两个子图层将其内容设置为图像文件;并且第三张图中有一张画在重新排序子层没有影响
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
方法。问题是我的绘图层总是出现在图像层后面。我尝试重新排序子层数组并改变子层的zPosition属性无济于事。我错过了什么?
- (void)setupLayers
{
CALayer *rootLayer = [self layer];
_meterLayer = [CALayer layer];
[_meterLayer setContents:(id)[[UIImage imageNamed:@"HealthMeterRadial60x60.png"] CGImage]];
_pointerLayer = [CALayer layer];
[_pointerLayer setContents:(id)[[UIImage imageNamed:@"HealthMeterRadialPointer60x60.png"] CGImage]];
_labelLayer = [CALayer layer];
[self set_labelText:@"Health"];
[rootLayer addSublayer:_meterLayer];
[rootLayer insertSublayer:_pointerLayer above:_meterLayer];
[rootLayer insertSublayer:_labelLayer above:_pointerLayer];
}
而且drawLayerInContext方法:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
if(layer = _labelLayer) {
//draw graphics ... omitted for clarity; works, but always behind images
}
}