私のアプリケーションは、ポートレートとランドスケープの間を行き来します。すべてのコンテンツ (ラベル、uiimageviews、uilabels) を並べて、両方の向きに再配置します。ただし、実際にデバイスを回転させたときの唯一の変化です。回転後にタブ間を循環すると、ユーザーが回転したときに設定した方法ではなく、自動サイズで表示されます。
デバイスの向きを検出し、別のタブをタップしたときに向きを反映するようにビューを表示するにはどうすればよいですか?
わかりました、viewWillAppearに設定しました。向きを検出せず、設定した場所にコンテンツを表示しない理由はありますか?
-(void)viewWillAppear:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration{
UIInterfaceOrientation toOrientation = self.interfaceOrientation;
[UIView beginAnimations:@"move buttons" context:nil];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
if(toOrientation == UIInterfaceOrientationPortrait
|| toOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
aboutContent.frame = CGRectMake(20, 100, 280, 107);
myLogo.frame = CGRectMake(-5, 20, 330, 65);
bulletOne.frame = CGRectMake(40, 220, 240, 45);
bulletTwo.frame = CGRectMake(40, 270, 240, 45);
}
else
{
aboutContent.frame = CGRectMake(40, 80, 400, 70);
myLogo.frame = CGRectMake(230, 30, 20, 20);
bulletOne.frame = CGRectMake(90, 140, 330, 65);
bulletTwo.frame = CGRectMake(90, 170, 330, 65);
}
[UIView commitAnimations];
}