2011-07-11 13 views
6

Używam nieznacznie dostosowany kod z Apple Touches code (Właśnie zmienił nazwę zmiennej z kawałka na obrazie):Brakujące nieruchomość Anchorpoint dla UIView

- (void)adjustAnchorPointForGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer { 
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) { 
     UIView *image = gestureRecognizer.view; 
     CGPoint locationInView = [gestureRecognizer locationInView:image]; 
     CGPoint locationInSuperview = [gestureRecognizer locationInView:image.superview]; 

     // Gives error: Property 'anchorPoint' not found on object of type 'CALayer *' 
     //image.layer.anchorPoint = CGPointMake(locationInView.x/image.bounds.size.width, locationInView.y/image.bounds.size.height); 
     // Gives warning: Method '-setAnchorPoint' not found 
     [image.layer setAnchorPoint:CGPointMake(locationInView.x/image.bounds.size.width, locationInView.y/image.bounds.size.height)]; 
     image.center = locationInSuperview; 
    } 
} 

Jednakże, jak stwierdzono w komentarze, zdjęcia. warstwa.anchorPoint nie kompiluje się, z błędem, który nie może znaleźć właściwości "anchorPoint". Kompiluje się, gdy linia jest przepisywana z wiadomością, ale nadal daje ostrzeżenie.

Kopiowanie i wklejanie kodu dotknięcia bezpośrednio bez zmiany nazwy zmiennej powoduje ten sam błąd. Również te błędy nie pojawiają się, gdy kompiluję kod Touches.

Dlaczego tak jest?

Odpowiedz

22

Prawdopodobnie nie uwzględniono framugi QuartzCore, która jest wymagana do korzystania z CALayer.

Trzeba dodać

#import <QuartzCore/QuartzCore.h> 
Powiązane problemy