我有UIView
。我在UIView
中画了一些东西。我在CALayer
添加了UIView
。现在我希望我的控制器只重绘我添加的CALayer。
我该怎么做?
在我的实际代码中,它将重绘主视图。如何重绘我的子视图(myshapelayer)?
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();
答案 0 :(得分:1)
你可以打电话
self.view.displayLayer(myshapelayer)
来自ViewController的
答案 1 :(得分:-1)
有两种方式。
首先,您制作代理协议并通过ViewController
更改CALayer
其次,您可以使用self.view.subviews
获取CALayer
如果CALayer
的索引为1,则可以self.view.subviews[1] as? CALayer
希望它可以帮到你。