0

uitableviewios6.1で画像を読み込むにはどうすればよいですか。

現在 SDWebImagehttps ://github.com/rs/SDWebImageを使用していますが、動作しますが、画像が読み込まれない場合があります。

私が使用しているライブラリよりも優れたライブラリは他にありますか?私はiOSの初心者であり、それは私に大いに役立つでしょう。

前もって感謝します。

これは私が今使っているコードです:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *MyIdentifier = @"MyIdentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];

    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                       reuseIdentifier:MyIdentifier] autorelease];
    }

    // Here we use the new provided setImageWithURL: method to load the web image
    [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
                   placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

    cell.textLabel.text = @"My Text";
    return cell;
}
4

1 に答える 1

1

コメントするには長すぎたので、私はこれを答えに入れています:

SDWebImageパッケージは、そのキャッシングに強力です。特に、iOSでは少し苦痛になる可能性のあるオンディスクキャッシングです(さまざまなOSバージョンがさまざまなレベル/タイプのキャッシングをサポートしています)。SDWebImageは、多くの優れた機能も提供します。GitHubページ(上部の箇条書きリスト)で要点を確認できます。

それがあなたが求めているUIImageViewカテゴリ(setImageWithURL:placeholderImage:メソッドを提供する)だけの場合、一部の人々(「ほとんど」と言いたいのですが、データ/統計でバックアップできません)は、AFNetworkingを使用する可能性が高いためです。 'すでにそれをネットワークスタックとして使用しています。広範なAFNetworking機能だけでなく、ディスク上のキャッシュも必要なため、本番アプリではAFNetworking+SDWebImageを使用しています。

ああ、ダウンロードされていない画像に関しては、ネットワークの問題であった可能性があります。エラーが発生せず、アプリがクラッシュしなかったという事実は、SDWebImageが追加する機能のほとんどのポイントです。同様の方法を実装するには、エラーケース(ネットワークエラーと不正なURLと間違ったURL)を処理し、メインスレッドをブロックせずにUIImageViewを更新する必要があります。これらはすべて、初心者だけでなく中級のプログラマーにとっても実装が非常に複雑になる可能性があります。 。機能は単純に見えます-画像をダウンロードし、プレースホルダーを使用し、画像が到着したときに更新します-しかし、それは間違いなく簡単な作業ではありません。

于 2013-03-26T20:38:40.857 に答える