0

まず第一に、問題の奇妙さは、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 は希望どおりに動作しますが、最初に縦向きに回転させてから横向きにすると、スクリーンショットでわかるように、私が話している問題が発生します。

最初は横向きですが、ページをめくっても問題ありません。オフになったページは、他のビューのどこにも表示されません IMAGE アプリは最初は横向きで起動 - スクロールなし IMAGE スクロール中も、アプリを横向きで起動したので問題なし

デバイスが縦向きから横向きに回転し、画像が画面の左方向にスクロールされると、masterViewController のビューがすべておかしくなり、detailViewController にも表示されます。どうすれば起こりますか? IMAGE ビューは左にスクロールされます

4

1 に答える 1

1

私が正しく理解していれば、他の画像が現在の画像と重なっていると言われています。それが起こっている場合は、スクロールした画像を一番上に持ってきて、[self bringSubviewToFront:imageview]これが画面に収まっていれば、それが唯一の画像になります。

それ以外の場合は、より詳細にお願いします。

于 2013-07-03T11:21:51.200 に答える