ランドスケープモードでレイアウトされたストーリーボードを使用するiPadアプリがあります。すべてのラベルとイメージビューは、ストーリーボードの中央に配置されます。横向きモードでは見栄えがしますが、タブレットを回転させるとすぐに、iPad は縦向きモードではなく横向き画面パラメーターを使用してウィジェットを再描画します。正しいモードでウィジェットを再描画するにはどうすればよいですか?
質問する
371 次
1 に答える
0
自動サイズ変更を使用して、ビューをポートレート モードに再描画できます。
または
interfaceOrientation
以下のコードのように、ポートレート モードで整列されていないビューの正確な位置を設定するために使用できます。
注: ウィジェット フレームは、不適切な場合にのみ変更してください。
自動サイズ変更を使用してビューを配置する方法を学びます...これはより高く評価されます。
適切な方向感覚を持つようにアニメーション化します。
iOS6の場合- (BOOL) shouldAutorotate
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (interfaceOrientation == UIInterfaceOrientationPortrait||
interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
//Code
dispatch_async(dispatch_get_main_queue(), ^{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
_btn1.frame = CGRectMake(190, 270, 137, 240);
_btn2.frame = CGRectMake(440, 270, 137, 240);
_btn3.frame = CGRectMake(300, 40, 137, 240);
[UIView commitAnimations];
});
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight||
interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
{
dispatch_async(dispatch_get_main_queue(), ^{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
_btn1.frame = CGRectMake(250, 180, 137, 240);
_btn2.frame = CGRectMake(640, 180, 137, 240);
_btn3.frame = CGRectMake(440, 40, 137, 240);
[UIView commitAnimations];
});
//Code
}
return YES;
}
于 2013-10-21T14:21:43.677 に答える