まず第一に、問題の奇妙さは、iPhone では同じ問題が発生せず、iPad で発生することです。以下のコードは、アプリケーション バンドル内の画像のパスである文字列の配列を取得し、これらの画像を imageView としてカスタム UIScrollView に配置します。その仕事は、ページの写真を表示することです。ユーザーがページをめくると、スクロールビューの境界に次の写真が表示されます。したがって、アイデアは基本的にページングです。scrollView の範囲内で iPhone に最適です。ただし、iPad では、実際にはその境界内でも同様に機能しますが、問題は、scrollView の境界と contentOffSet 値がそれらを表示することになっていない場合でも、ページの他の画像も画面に表示されることです。 masterViewControllerも画面上にあるのにページをめくってしまい、そのため、scrollView の画像は画面上のすべてのものを超えて表示されます。実際には、scrollView の画像はジェスチャ イベントを認識しないため機能しませんが、scrollView が現在その境界内に表示している画像です。では、何が問題になるのでしょうか?私はそれをグーグルで調べましたが、誰も同様の問題に遭遇したことはないと思います. scrollView 用に imageViews を作成したコードを以下に示しますが、先ほど述べたように、他の画像をオーバーフローさせずに iPhone で動作します。ありがとうございました。scrollView 用に imageViews を作成したコードを以下に示しますが、先ほど述べたように、他の画像をオーバーフローさせずに iPhone で動作します。ありがとうございました。scrollView 用に imageViews を作成したコードを以下に示しますが、先ほど述べたように、他の画像をオーバーフローさせずに iPhone で動作します。ありがとうございました。
- (void)loadImagesAtPaths:(NSArray *)paths inFrame:(CGRect)frame
{
CGFloat newWidth = CGRectGetWidth(frame)*paths.count; //width for contentSize with respect to number of images so that it covers all images in its contentSize
for( UIView *view in self.subviews) [view removeFromSuperview]; //removing old imageViews
self.contentSize = CGSizeMake(newWidth, CGRectGetHeight(frame));
for( NSUInteger currentImageIndex = 0; currentImageIndex < paths.count; currentImageIndex++){
UIImage *imageForImageView = [UIImage imageNamed:[paths objectAtIndex:currentImageIndex]];
CGRect frameForImageView = CGRectMake(CGRectGetWidth(frame)*currentImageIndex, 0, CGRectGetWidth(frame), CGRectGetHeight(frame)); //paging the imageView
UIImageView *currentImageView = [[UIImageView alloc] initWithFrame:frameForImageView];
currentImageView.contentMode = UIViewContentModeScaleToFill;
currentImageView.image = imageForImageView;
[self addSubview:currentImageView];
}
self.pagingEnabled = YES;
self.userInteractionEnabled = YES;
self.showsHorizontalScrollIndicator = NO;
self.showsVerticalScrollIndicator = NO;
self.scrollsToTop = NO;
}
この問題は、向きが縦向きから横向きに回転したときに発生します。アプリが横向きで起動した場合、scrollView は希望どおりに動作しますが、最初に縦向きに回転させてから横向きにすると、スクリーンショットでわかるように、私が話している問題が発生します。
最初は横向きですが、ページをめくっても問題ありません。オフになったページは、他のビューのどこにも表示されません
デバイスが縦向きから横向きに回転し、画像が画面の左方向にスクロールされると、masterViewController のビューがすべておかしくなり、detailViewController にも表示されます。どうすれば起こりますか?