2013-04-09 2 views
2

J'ai une sous-classe de UIView qui dessine une icône de localisation. Lorsque je fais pivoter la vue de quelques degrés, ses limites (surlignées en vert à l'aide de CGContextAddRect) semblent changer radicalement, ce qui rend mon dessin déformé.Limites d'un graphique UIView et Core mis en rotation

http://bytolution.com/Screenshot%202013.04.09%2016.41.00.png http://bytolution.com/Screenshot%202013.04.09%2016.41.43.png

Voici mon code:

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    self.locationTagView.frame = CGRectMake(40, 80, 240, 240); 
    CGAffineTransform transform = CGAffineTransformMakeRotation(DegreesToRadians(30)); 
    self.locationTagView.transform = transform; 
    [self.view addSubview:self.locationTagView]; 
} 
+0

J'ai essayé 'self.locationTagView.autoresizingMask = UIViewAutoresizingNone;' mais cela ne fonctionne pas. Voir ma réponse ci-dessous! – Dario

Répondre

2

Cela corrige le:

#define LOCTAG_HEIGHT 240 
#define LOCTAG_WIDTH 240 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    self.locationTagView.frame = CGRectMake(40, 80, LOCTAG_WIDTH, LOCTAG_HEIGHT); 
    self.locationTagView.bounds = CGRectMake(0, 0, LOCTAG_WIDTH, LOCTAG_HEIGHT); 
    CGAffineTransform transform = CGAffineTransformMakeRotation(DegreesToRadians(340)); 
    self.locationTagView.transform = transform; 
    [self.view addSubview:self.locationTagView]; 
} 

http://bytolution.com/Screenshot%202013.04.09%2021.02.39.png

Réglage des limites séparément rend fonctionner!