UITableView с изображениями контактов в Monotouch прокручивается очень медленно - PullRequest
0 голосов
/ 22 июня 2011

Я разрабатываю приложение контактов для iPhone с использованием MonoTouch.Я использую пользовательский UITableViewCell, который показывает изображение контакта (ABPerson.Image), имя контакта и некоторую другую информацию.Я использую следующий код при загрузке изображения контакта:

//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;
    });
}

Этот код работает нормально, но прокрутка - это медленная скорость.У кого-нибудь есть идея лучше загрузить изображения контактов?

Спасибо, Дэнни

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

С вашей реализацией может быть много проблем, фрагмент кода недостаточен, чтобы выяснить, в чем дело.

Вы можете посмотреть загрузчик изображений, который является частью MonoTouch.Dialog, так как он поддерживает этот сценарий, загружая изображения из сети или из локального кэша файловой системы.

1 голос
/ 23 июня 2011

На эту тему есть отличный блог, который можно найти здесь .

Который охватывает эту тему - похоже, что вы делаете очень похоже, за исключением того, что вы фактически загружаете изображения в сам customCellController.В этом примере они называются LoadImage() и loadImage в источнике данных и передаются в объект ячейки, а не выполняются вычисления в самой ячейке.Возможно, это поможет ускорить прокрутку.

...