現在、いくつかの写真を含むスクロールビューがあります。電話を横向きに回転させると、スクロールビューの画像が大きくなり (フルスクリーン)、画面全体が画像で覆われるようになります。縦向きに戻すと、フルスクリーンの画像が削除されます。
回転の変化を検出するために、viewDidLoad でこれまでに行ったこと:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleOrientationChange) name:UIDeviceOrientationDidChangeNotification object:nil];
そしてそれを処理するには:
- (void)handleOrientationChange
{
if (([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft) ||
([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight)) {
UIImageView *fullScreenImage = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[fullScreenImage setImage:[UIImage imageNamed:[[PflanzenSingletonClass sharedManager] loadStringFromUserDefaultsForKey:CurrentScrollViewImage]]];
[fullScreenImage setTag:999];
[self.view addSubview:fullScreenImage];
} else
{
[[[self.view subviews] objectAtIndex:([[self.view subviews] count] - 1)] removeFromSuperview];
}
}
しかし、期待どおりに機能していません(確かに私のせいです)。
- ImageView は実際にはフルスクリーンではありません。ナビゲーション バーがまだ表示されている
- 画像が横向きに回転されていません (向きの変更が行われる直前にメソッドが呼び出されますか??)
- 2.のせいで画像が伸びています。
- アニメーションでこれをもっとスムーズにしたいと思います。開始点は、スクロールビューの矩形です。
何か案は?どうもありがとう。