2011-06-20 18 views
0

現在、UIScrollViewを使用するiPadアプリを開発中です。 UIScrollViewにUIImageが設定され、すべての画像が幅の2倍の1536ピクセルのiPads幅よりも大きくなります。私がしたいことは、スワイプ/フリックすると2番目の画像、つまり1536に、3番目の画像は3072にスクロールすることです。スライドするときに素早くイメージを見るだけです。私はscrollViewDidEndDraggingを見てきましたが、それは時々本当に不快で不安定になります。UIScrollView - ページ幅よりも大きいページングUIImage

UIScrollViewの最後のUIImageとは別に1536ずつスクロールするようにアニメーションを設定する方法はありますか?私はあなたがsetContentOffsetを使うことができることを知っていますが、私が上記の方法でこれを使うと、それは現在の遷移を使用しているので動作しないので、非常に不安定になります。

編集

for (i = 1; i <= kNumImages; i++) 
{ 
    NSString *imageName = [NSString stringWithFormat:@"cocktail_%d.png", i]; 
    UIImage *image = [UIImage imageNamed:imageName]; 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
    CGRect rect = imageView.frame; 
    rect.size.width = kMainImageWidth; 
    rect.size.height = kMainImageHeight; 
    rect.origin = CGPointMake(xpos, 0); 
    imageView.frame = rect; 

    [mainImgScrollView addSubview:imageView]; 
    [imageView release]; 
    xpos += kMainImageWidth; 
} 

編集

私が行うために必要なすべてはUIScrollViewの1536pxが広い作りました、それが働きました。このアプリには6枚の画像があります。うまくいけば、記憶に問題はないでしょうか?

ありがとうございました。

+0

どういう意味なのか... – Peter

答えて

1

ページサイズはUIScrollViewサイズです。 UIScrollView自体をiPad画面の幅より大きくすることは、まったく受け入れられます。 UIScrollViewを1536ピクセル幅にすると、各ページの幅は1536ピクセルになります。

ユーザーがスクロールして各画像を見ることができるように、スクロールビューにはスクロールビューの行が含まれています。外側のスクロールビューはウィンドウ内のスクロールビューで、幅は1536ピクセルで、ページング用です。内側のスクロールビューは画面の幅で、contentSizeはイメージサイズに設定されているため、ユーザーはそれぞれをスクロールしてイメージを見ることができます。

(ただし、1536ピクセル幅の画像を複数プレビューしたアプリは実行されません(デバイスの使用可能なメモリを超えるため)。WWDC2010のビデオには以下のものが含まれています。この非常にトピックに関する優れた話、つまり画像からページへのページングを可能にするページングスクロールビューの設計方法)

0

UIScrollビューでページングをオンにしたいと思います。これにより、スクロールビューの幅にスナップされます。 iPad/iPhoneのホーム画面のように振る舞います。ページング効果を正しく得るには、scrollViewのフレームを画面より広くする必要があるかもしれません。画像のサイズに関係なく、何らかの遅れが生じることがあります。

+0

私はスクロールビューを大きくしてみましたが、元の画面サイズの768の幅にスナップします。現在のコードを元の位置に修正しました。現在のコードは画像幅ではなく現在の画面幅だけをスクロールしているので機能しません。 – Peter

+0

スクロール後に移動する画像をアニメーション表示する必要がある場合があります。または、おそらくスクロールの代わりにアニメートします。 – Dancreek

関連する問題