Не умею рисовать в CAlayer - PullRequest
       8

Не умею рисовать в CAlayer

0 голосов
/ 03 апреля 2010

HI All.

У меня есть подкласс UIScrollView. В этом классе я добавил немного imageView.layer к self.layer. И когда я звоню [imageView.layer setNeedsDisplay], мой реализованный делегат никогда не звонил.

-(void)drawLayer:(CALayer*)layer :(CGContextRef)context 

Я также установил

imageView.layer.delegate = self

Может кто-нибудь сказать мне, где я должен установить функцию делегата, чтобы заставить это работать.

Спасибо за продвижение.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2010
  1. Имя метода - -drawLayer:inContext:. Подпись метода делегата должна быть такой:

    //                                  vvvvvvvvv
    - (void)drawLayer:(CALayer *)layer  inContext:(CGContextRef)ctx
    
  2. Не переопределяйте делегат другого слоя, присоединенного к представлению (которое является этим представлением). Это сделает вид не может работать нормально.

0 голосов
/ 03 апреля 2010

Есть некоторые странные вещи с твоим подходом.

Если у вас есть ScrollView и ImageView, вам не нужно добавлять слои, вы можете просто сделать
[scrollView addSubview: imageView];

Кроме того, вам не нужен делегат для рисования UIView в UIWindow. Однако, если вы хотите добавить делегата, вы можете сделать это: imageView.delegate = ImageView не должен быть его собственным делегатом, вам понадобится некоторый ViewController, лучше ScrollViewController.

...