フルスクリーンのUIScrollViewを備えたアプリケーションがあり、その中に7つの画像があります。画像も全画面表示で、スクロールビューはページネーションを有効にするように設定されています。
画像ビューを作成または移動する方法があります。
-(void)rebuildImageView{
// set up images
float screenW = self.view.bounds.size.width;
float screenH = self.view.bounds.size.height;
int numImgs = self.soundNames.count;
self.mainScrollView.contentSize = CGSizeMake(screenW * numImgs, screenH);
for(int i=0; i<numImgs; i++){
UIImageView* imageView = (UIImageView*)[self.mainScrollView viewWithTag:i+100];
if(imageView == nil){
imageView = [[UIImageView alloc] init];
imageView.tag = i+100;
[self.mainScrollView addSubview:imageView];
imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"image%d.jpg",i]];
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.clipsToBounds = YES;
[imageView release];
}
imageView.frame = CGRectMake(i * screenW, 0, screenW, screenH);
}
// scroll to the current one
[self.mainScrollView scrollRectToVisible:CGRectMake(self.currentSound*screenW, 0, screenW, screenH) animated:YES];
}
私はこれをViewControllerにも持っています:
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
[UIView animateWithDuration:duration animations:^{
[self rebuildImageView];
}];
}
このコードは、画像0が表示されているときに自動回転すると正常に機能しますが、画像7を表示しているときは、回転すると画像6のほとんどが簡単に表示されます。このビデオは何が起こっているかを示しています:
http://www.youtube.com/watch?v=1O3jOcTgVP8
デバイスを回転させるときにスクロールビューと画像を再構成するために使用する必要があるより良い方法はありますか?