2011-06-22 8 views
0

MonoTouchを使用してiPhone用の連絡先アプリを開発しています。私は連絡先イメージ(ABPerson.Image)、連絡先の名前といくつかの他の情報を示すカスタムUITableViewCellを使用しています。コンタクトイメージがロードされたとき、私は次のコードを使用してい :モノタッチの接触画像を持つUITableViewが非常に遅い

//CustomTableViewDataSource class 
if (person.HasImage) 
    customCellController.LoadImage (person.Image); 


//Custom cell controller class 
public void LoadImage(NSData data) 
{ 
    ThreadPool.QueueUserWorkItem (p => this.loadImage (data)); 
} 
private void loadImage(NSData data) 
{ 
    UIImage image = UIImage.LoadFromData(data); 
    InvokeOnMainThread(delegate 
    { 
     this.imageView.Image = image; 
    }); 
} 

をこのコードは正常に動作しますが、スクロールが遅くする方法です。コンタクト画像を読み込む方がいいですか?

おかげで、 ダニー

+0

このテーブルのセルをどのように作成していますか? –

答えて

1

here見つけることができます。このトピックに関する優れたブログがあります。

これは、実際にcustomCellController自体のイメージをロードする場合を除き、このトピックをカバーしています。この例では、データソースでLoadImage()loadImageと呼ばれ、セル自体で計算を行うのではなく、セルオブジェクトを渡します。スクロールのスピードアップに役立ちます。

+0

こんにちは、このトピックでは、インターネット経由で画像をダウンロードする方法について説明します。私のコードでは、Imageをダウンロードしていませんが、iPhone自体のContactからイメージを設定します。 – dennieku

2

実装には多くの問題がありますが、コードスニペットでは何が間違っているかを把握するには不十分です。

MonoTouch.Dialogの一部であるイメージダウンローダは、このシナリオをサポートしているので、ネットワークまたはローカルファイルシステムキャッシュからイメージをロードしています。

+0

あなたの答えをありがとう。私はMonoTouch.Dialogプロジェクトをチェックします! – dennieku