addSubLayer到UIView而不是root视图

时间:2014-11-14 16:31:48

标签: ios uiview calayer

当我绘制图表并将其添加到控制器的视图时,图表会正确显示。

CAShapeLayer *shapeLayer = [CAShapeLayer layer];
self.currentGraph = shapeLayer;
shapeLayer.strokeColor = [UIColor blackColor].CGColor;
shapeLayer.fillColor = [UIColor grayColor].CGColor;
shapeLayer.lineWidth = 1.0;
//[self.graphView.layer addSublayer:shapeLayer]; // Doesn't work!
[self.view.layer addSublayer:shapeLayer]; // Works!

如果我将其添加到应包含图表的UIView中,则图表根本不会显示。

可能导致问题的原因是什么?

1 个答案:

答案 0 :(得分:1)

我建议创建一个自定义UIView子类来包含您的图层。这样你就可以获得UIView的所有好处,但可以灵活控制图层的类型。

class UIGradientView: UIView {

    override class func layerClass() -> AnyClass {
        return CAShapeLayer.self
    }
}