0

私は、1つのビューがあるiPhone写真アプリを開発しています。このアプリでは、uiscrollviewを使用してそのアプリで撮影されたすべての画像を表示しています。まず、現在のすべての画像をスクロールビューにロードしました。ただし、アプリが遅くなり、クラッシュが発生して次の警告が表示されました。

Received memory warning. Level=2

私はたくさんグーグルで検索しましたが、その理由は、ビューにそのような重い画像をまとめてロードすると、メモリ警告が発生し、後でクラッシュする可能性があることを発見しました。そのため、遅延読み込みの概念を選択します。

ここでは、3つの画像を1つは中央(現在はユーザーに表示)に、残りの2つは両側にロードしていました。私はそれを次のように行いました:

   - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
     {
        pageNum = (int)(scrollView.contentOffset.x / scrollView.frame.size.width);
        pageNumber = floor(pageNum);
        [self setImages:pageNumber];      //setting three images
     }

これで、クラッシュやメモリの警告は発生しませんが、スクロールがかなり荒くなり、ぎくしゃくします。

ざらつきを取り除く方法、またはiPhoneのデフォルトの写真アプリと同じようにすべての画像を表示する方法を教えてください。

ヘルプは大歓迎です。

注:1。不明な画像はありません。無制限にすることができます。2. Xcode 3.2.6 3. ios sdk 4.3

リンク[link]https://www.dropbox.com/sh/h0vwnhhx1acfcb5/W2TQ638udhを検討してください。このリンクは、遅延読み込みが埋め込まれたフォトスクローラーを表示したビデオを示しています。画像が読み込まれないことがあるので、スクロールも荒くなります。

4

2 に答える 2

0

わかりました。よく理解できれば、シーケンスのように UITableView に画像を表示し、テーブル スクローラーを正常に動作させたいと考えています。

私は自分のプロジェクトの1つで同じ問題を抱えていましたが、画像をダウンロードせずに単純に表示することで解決しました。より明確にするために、3つのステップに分けました。

1-すべての画像の Web アドレスともちろん ID を格納する XML ファイルを作成します。
2-NSXMLParserを使用して、すべての画像のWebアドレスを取得し、UITableViewに表示した後、NSArrayに追加します.tableViewをカスタマイズして、すべての画像をデザインしたいように見せることができます.
3-UITableView メソッドで、UIWebView(これがキーです) を追加します。画像アドレスをこの webView にロードします。

于 2012-05-10T14:45:30.540 に答える