Ist jemandem schonmal über den Weg gelaufen, dass in drawRect die convertRect:fromView Methode beim Autorotate die View Größenänderung nicht mitbekommt? Habe mich schon totgesucht! Wir benutzen self.superView als Referenz View.
Ergebnis siehe Screenshot. Die "Pille" wird nach der Rotation versetzt dargestellt. Beim Debugging fällt auf, dass convertRect:FromView: nicht funktioniert.
Quellcode
- CGRect aRect = [self convertRect:rect fromView:self.superview];
- originalRect = CGRectMake(ABS(aRect.origin.x), ABS(aRect.origin.y), rect.size.width, rect.size.height);
- sapDebug(gLocation,@"rect: %@",NSStringFromCGRect(rect));
- sapDebug(gLocation,@"superview frame: %@",NSStringFromCGRect(self.superview.frame));
- sapDebug(gLocation,@"aRect: %@",NSStringFromCGRect(aRect));
- sapDebug(gLocation,@"originalRect: %@",NSStringFromCGRect(originalRect));
Ergebnis siehe Screenshot. Die "Pille" wird nach der Rotation versetzt dargestellt. Beim Debugging fällt auf, dass convertRect:FromView: nicht funktioniert.
Quellcode
- DEBUG - 2012-05-21 12:57:00 : -[Pill drawRect:]:57 - rect: {{0, 0}, {34, 24}}
- DEBUG - 2012-05-21 12:57:00 : -[Pill drawRect:]:58 - superview frame: {{0, 0}, {448, 103}}
- DEBUG - 2012-05-21 12:57:00 : -[Pill drawRect:]:59 - aRect: {{-663, -69}, {34, 24}}
- DEBUG - 2012-05-21 12:57:00 : -[Pill drawRect:]:60 - originalRect: {{663, 69}, {34, 24}}