私は完全にランドスケープモード(UIStatusBarHidden = YESおよびUIInterfaceOrientation = UIInterfaceOrientationLandscapeRight)で動作するアプリケーションで作業しています。私は、MAINVIEWに続いてUINavigationControllerランドスケープへの自動回転でUIViewフレームが更新されない
- (void)loadView {
CGRect frame = [[UIScreen mainScreen] applicationFrame]; // This returns a portrait frame
MainView *view = [[MainView alloc] initWithFrame:frame];
self.view = view;
[view release];
}
:私はこのようなビューをロードしています、私のMainViewControllerで
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
:私は私のrootViewControllerこのような(MainViewController)設定で、NavigationControllerを使用していますこのようなメートルローディングサブビュー:
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
self.pdfView = [[PDFView alloc] initWithFrame:frame];
[self addSubview:pdfView];
}
returnself;
}
私の問題は、MAINVIEWは([MAINVIEW initWithFrame:]に渡されたフレームにもかかわらず、肖像画である)風景モードで正しくレンダリングすることにある子Pながら、 DFViewはポートレートフレームにレンダリングします。このような実装:[UIViewのinitWithFrame]:私も自分で変換を適用して実験してきた
view.center = CGPointMake(view.frame.size.height/2.0, view.frame.size.width/2.0);
view.transform = CGAffineTransformRotate(view.transform, (M_PI/2.0));
しかし、フレームの値が間違っているので、それが動作するようには思えません。
CGRectMake(0.0, 0.0, 480.0, 320.0)
しかし、明らかにそのような手動調整を行うことは理想的である:フレームを無視し、次のように手動で1を作成するいくつかのケースで動作しているようです。
アイデア?
@ryanどのようにUINavigationControllerから継承しましたか。 –