Ich arbeite an einer Anwendung, die vollständig im Querformatmodus arbeitet (UIStatusBarHidden = YES und UIInterfaceOrientation = UIInterfaceOrientationLandscapeRight). Ich bin mit einem Navigation, mit meinem RootViewController (Mainviewcontroller) Setup wie folgt aus:UINavigationController Auto-Rotation zu Querformat aktualisiert UIView-Rahmen nicht
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
In meinem Mainviewcontroller, ich bin der Ansicht, wie das Laden:
- (void)loadView {
CGRect frame = [[UIScreen mainScreen] applicationFrame]; // This returns a portrait frame
MainView *view = [[MainView alloc] initWithFrame:frame];
self.view = view;
[view release];
}
Dann in Mainview, ich m Laden Subviews wie folgt aus:
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
self.pdfView = [[PDFView alloc] initWithFrame:frame];
[self addSubview:pdfView];
}
returnself;
}
Mein Problem ist, dass Mainview korrekt im Landschaftsmodus macht (trotz des Rahmens ging in [Mainview Initwithframe:] im Portrait zu sein), während das Kind P DFView wird zu einem Portrait-Frame gerendert. [UIView Initwithframe:] Implementierungen wie folgt aus: Ich habe auch mit Anwenden der Transformationen in meinem experimentierte
view.center = CGPointMake(view.frame.size.height/2.0, view.frame.size.width/2.0);
view.transform = CGAffineTransformRotate(view.transform, (M_PI/2.0));
Aber das scheint nicht, da der Rahmen Wert falsch ist zu arbeiten. Das Ignorieren der Rahmen und die Schaffung eines manuell wie dies in einigen Fällen zu funktionieren scheint:
CGRectMake(0.0, 0.0, 480.0, 320.0)
Aber natürlich machen die manuelle Anpassungen, wie das ist weniger als ideal.
Irgendwelche Ideen?
@ryan wie haben Sie von der UINavigationController geerbt. –