iOSアプリケーションを作成しています。ナビゲーションコントローラー内で機能します。私が最近作成したビューでは、UITextViews
とUIImageView
が間違った座標で間違って表示されています。これはのせいかもしれませんUINavigationBar
。
Interface Builderでビューをミラーリングするように設定すると、実際にはビューが正しく表示されませんでした。これは。によるものだと思いUINavigationBar
ます。正しく表示されるまでInterfaceBuilderの座標を変更することで、これを「修正」することができました。これは、InterfaceBuilderが現在どのように見えるかです。
ビューを両方のデバイスの向き(縦向きと横向き)で機能させたい。ビュー内のオブジェクトは回転するように簡単に指示できないため、プログラムでビューを配置しています。コードは次のとおりです。
-(void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation {
if (orientation == UIInterfaceOrientationPortrait) {
appInfo.frame = CGRectMake(20, 19, 280, 90);
updateInfo.frame = CGRectMake(20, 117, 280, 86);
authorInfo.frame = CGRectMake(20, 229, 172, 200);
authorImage.frame = CGRectMake(190, 274, 110, 110);
}
else if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) {
appInfo.frame = CGRectMake(11, 44, 199, 124);
updateInfo.frame = CGRectMake(218, 53, 242, 124);
authorInfo.frame = CGRectMake(11, 180, 340, 90);
authorImage.frame = CGRectMake(350, 170, 110, 110);
}
}
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self adjustViewsForOrientation:toInterfaceOrientation];
}
-(void) viewWillAppear:(BOOL)animated {
[self adjustViewsForOrientation:self.interfaceOrientation];
[super viewWillAppear:animated];
}
これが私の主な問題です。 ビューを横向きに回転すると、オブジェクトが直接配置されなくなります。それらは、回転中に呼び出される座標に記述されているものには従いません。
この問題は、回転して縦向きに戻した場合にも発生します。
どうすればこれを解決できますか? 前もって感謝します。