2011-06-22 69 views
0

我正在爲使用MonoTouch的iPhone開發聯繫人應用程序。我使用自定義的UITableViewCell,它顯示聯繫人圖像(ABPerson.Image),聯繫人姓名和其他信息。 我使用下面的代碼時,被加載接觸式圖像:UITableView與Monotouch中的聯繫人圖像滾動速度很慢

//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

嗨,這個主題包括通過互聯網下載圖像。在我的代碼中,我不下載圖像,但是我從iPhone上的聯繫人設置了圖像。 – dennieku

2

你的實現可能有很多問題,代碼片段不足以找出錯誤。

您可以查看作爲MonoTouch.Dialog一部分的圖像下載程序,因爲它支持此方案,同時從網絡或本地文件系統緩存加載圖像。

+0

感謝您的回答。我將檢查MonoTouch.Dialog項目! – dennieku