2016-03-30 8 views
0

UIScrollViewでカルーセルビューを実装しました。 600 * 400サイズの40-50画像ではうまく動作しますが、3-5Mbサイズ。 この問題を解決するにはどうすればいいですか。現在はiPadアプリで作業しています。 ありがとう、UIScrollViewは、カルーセル表示で最大5Mの大きな画像では良好ではありません

+0

多くのサードパーティ製のライブラリがあります。すべての画像をメモリに読み込むと、メモリ警告が表示されます。イメージを表示すると、魔法使いは表示されるか、表示されます。 – NSLog

答えて

0

UiScrollviewでは非常に基本的な問題ですが、大量の画像でScrollviewを使用することはお勧めしません。 代わりにUICollectionViewを水平スクロールで使用できます。 もちろん、ページングを有効にして最初の行を表示するだけです。

ここにいくつかのヒントがあります。 まず水平方向のカスタムフローレイアウトが必要です。

@interface LayoutHorizontalThings : UICollectionViewFlowLayout 
@end 

@implementation LayoutHorizontalBooks 

-(void)prepareLayout { 
    [super prepareLayout]; 

    self.scrollDirection = UICollectionViewScrollDirectionHorizontal; 

    self.minimumInteritemSpacing = 0; 
    self.minimumLineSpacing = 0; 
    self.itemSize = CGSizeMake(110,130); 
    self.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); 
} 

そして、pageenabledをtrueに設定する必要があります。

yourCollectionView.pagingEnabled = YES; 
0

これはあまり驚くべきことではありません。あなたは、デフォルトのUICollectionViewまたはカスタムUICollectionViewを使う方が良いでしょう。 UICollectionViewとUITableViewはメモリオーバーヘッドを維持するためにメモリから未使用のセルをフラッシュするという利点があります。 UIScrollViewsを使用すると、コンテンツをオフスクリーンでスクロールすると、すべてのメモリオーバーヘッドがそのまま残ります。

UIScrollViewは、画面サイズより大きなコンテンツページを持っているが、同種のアイテムの順序付きコレクションを表示するために最適化されていない場合に最適です。これは、UICollectionView/UITableViewを使用する必要があるときです。

もしあなたがスクロールビューに固執しているのであれば、使用していないイメージを画面から外してから再表示してから、それらをリフレッシュしてからコレクションビューを再実装することで独自のバージョンのデキュー機能を実装できます。

関連する問題