アプリが横向きモードと縦向きモードのときに、一連の画像をさまざまな場所に表示しようとしています。メソッドへの参照を既に検索して見つけましたwillAnimateRotationToInterfaceOrientation:duration
。ここで、次のようなコードを追加しました。
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
self.getStartedImage1.frame = CGRectMake(5, 100, 155, 115);
self.getStartedImage2.frame = CGRectMake(160, 100, 155, 115);
self.getStartedImage3.frame = CGRectMake(315, 100, 155, 115);
}
else
{
self.getStartedImage1.frame = CGRectMake(238, 96, 155, 115);
self.getStartedImage2.frame = CGRectMake(238, 219, 155, 115);
self.getStartedImage3.frame = CGRectMake(238, 342, 155, 115);
}
}
これは、既にランドスケープモードでビューに移動すると、メソッドが実行されないことに気付くまではうまくいきました。何も回転せずにビューを開いているので、これは理にかなっています。しかし、それは私の苦境を助けません。そこで私は検索を続け、メソッドにたどり着きましviewWillLayoutSubviews
た。このメソッドに同じ本体を追加して呼び出していますが、画像フレームへの変更がシミュレーターに表示されないため、おそらく遅すぎます。コードを に移動しようとすると、同じ問題が発生しviewWillAppear
ます。複数のビューを含む複雑なソリューションを見てきましたが、これは避けたいと思います。助言がありますか?