我有我的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
对象
希望它能帮助你。