我有我的UIView。我在我的UIView里画了些东西。我在我的CALayer中添加了一个UIView。现在我希望我的控制器只重绘我添加的CALayer。
我该怎么做?
在我的实际代码中,它将重新绘制主视图。如何重新绘制子视图(我的shapelayer)?

     override func drawRect(rect: CGRect) {

            var myshapelayer:CAShapeLayer=CAShapeLayer();
            var testbezier:UIBezierPath=UIBezierPath();
            testbezier.moveToPoint(CGPoint(x: 60, y: 80));
            ...
    ...

            myshapelayer.strokeColor=UIColor.blueColor().CGColor;
            myshapelayer.path=testbezier.CGPath;
            newlayer.addSublayer(myshapelayer)

<draw on my main view>

控制器:
myview.setNeedsDisplay();

最佳答案

有两种方法。
首先,您制定委托协议,并通过CALayer来更改ViewController
其次,使用CALayer可以获得self.view.subviews
如果CALayer的索引为1,则可以通过CALayer获取self.view.subviews[1] as? CALayer对象
希望它能帮助你。

07-28 02:39
查看更多