2015-11-05 50 views
1

我有我的UIView。我在我的UIView中畫了一些東西。我向我的UIView添加了一個CALayer。現在我想讓我的控制器只重繪我添加的CALayer。如何重繪只有一個特定的圖層? (IOS,SWIFT)

我該怎麼做?

在我的實際代碼中,它將重繪主視圖。我怎樣才能重繪我的子視圖(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(); 

回答

-1

有兩種方法。

首先,你做委託協議,並通過您的CALayerViewController

其次改變,你可以通過使用self.view.subviews 得到CALayer如果CALayer的指數是1,您可以通過self.view.subviews[1] as? CALayer

得到 CALayer對象

希望它可以幫助你。

+0

非常感謝幫助。 –

1

你可以叫

self.view.displayLayer(myshapelayer) 

從視圖控制器

相關問題