2015-11-05 2 views
1

У меня есть UIView. Я рисую что-то в своем UIView. Я добавил CALayer в мой UIView. Теперь я хочу, чтобы мой контроллер только перерисовал мой добавленный CALayer.как перерисовать только один определенный слой? (IOS, SWIFT)

Как это сделать?

В моем фактическом коде он будет перерисовывать основной вид. Как я могу перерисовать мой subview (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

Есть два способа.

Во-первых, вы делаете протокол делегата и передать ваши CALayer изменить в ViewController

Во-вторых, вы можете получить CALayer с помощью self.view.subviews если индекс CALayer «s является 1, вы можете получить CALayer объект, self.view.subviews[1] as? CALayer

Надеюсь, что это может вам помочь.

+0

Большое спасибо за помощь. –

1

можно назвать

self.view.displayLayer(myshapelayer) 

из ViewController

Смежные вопросы