2010-11-25 4 views
0

Ich habe eine Unteransicht im Navigationscontroller, wenn der iPad-Simulator zum Hoch- oder Querformat gedreht wird, ist die Hauptansicht automatisch in die iPad-Ausrichtung eingepasst, aber die Unteransicht nicht. Die Unteransicht wird ebenfalls gedreht, passt aber nicht in die iPad-Ausrichtung. Die Unteransichtsausrichtung ist immer quer zur Schaltfläche "iPad-Startseite".Wie man eine Unteransicht im Navigationscontroller automatisch anotiert

meine Frage ist, wie man die Subview autorotate und Orientierung wie die Hauptansicht Orientierung haben ???

kann mir einige Körper helfen, bitte ...

Antwort

6

ich dieses Problem gelöst haben.

[[NSNotificationCenter defaultCenter] 
addObserver:self 
selector:@selector(deviceRotated:) 
name:UIDeviceOrientationDidChangeNotification 
object:[UIDevice currentDevice]]; 

und dann ist dies die deviceRotated Methode:

ich die NSNotification Funktion in der subview Viewcontroller Klasse zu verwenden, in der viewWillAppear Methode, dies ist meine Implementierung ist

-(void)deviceRotated:(id)sender{ 
    UIDeviceOrientation orientation = [[UIDevice currentDevice]orientation]; 
    if (orientation == UIDeviceOrientationPortrait) { 
     CGAffineTransform rotate = CGAffineTransformMakeRotation (0.0); 
     CGAffineTransform translate = CGAffineTransformMakeTranslation(0, 30); 
     self.alertView.transform = CGAffineTransformConcat(translate, rotate); 

    } 
    else if (orientation == UIDeviceOrientationPortraitUpsideDown) { 
     CGAffineTransform rotate = CGAffineTransformMakeRotation (M_PI * 180/180.0f); 
     CGAffineTransform translate = CGAffineTransformMakeTranslation(-63, -100); 
     self.alertView.transform = CGAffineTransformConcat(translate, rotate); 

    }else if (orientation == UIDeviceOrientationLandscapeLeft) { 
     CGAffineTransform rotate = CGAffineTransformMakeRotation (M_PI * 90/180.0f); 
     CGAffineTransform translate = CGAffineTransformMakeTranslation(60, -180); 
     self.alertView.transform = CGAffineTransformConcat(translate, rotate); 


    }else if (orientation == UIDeviceOrientationLandscapeRight) { 
     CGAffineTransform rotate = CGAffineTransformMakeRotation (M_PI * 270/180.0f); 
     CGAffineTransform translate = CGAffineTransformMakeTranslation(-60, -140); 
     self.alertView.transform = CGAffineTransformConcat(translate, rotate); 

    } 
} 

Schließlich das Problem ist behoben. Und this ist der Link, der mir hilft.

Verwandte Themen