Асинхронная загрузка изображения в ячейку TableView - PullRequest
0 голосов
/ 03 декабря 2009

Я пытаюсь загрузить одно изображение в ячейку сгруппированной таблицы. Я нашел кусок кода в Интернете и изменил его. Оригинальный код использует UIViews для отображения изображения, а это не то, что мне нужно, однако оригинальный код работает, конечно. ПОЖАЛУЙСТА, помогите мне заставить этот код работать, чтобы отобразить изображение в ячейке сиглы для группового просмотра таблицы. Мой TableView имеет только одну строку и имеет стиль UITableViewCellStyleDefault.

Оригинальный код

Вот мой модифицированный метод, это основной метод.

- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection 
{
    [connection release];
    connection=nil;

    UIImage *img = [UIImage imageWithData:data];
    self.image = img;

    self.frame = self.bounds;
    [self setNeedsLayout];

    [data release]; 
    data=nil;
}

Вот так я использую его для отображения изображения в методе CellView Cell Cell CellForRowAtIndexPath.

CGRect frame;
frame.size.width=75; frame.size.height=75;
frame.origin.x=0; frame.origin.y=0;
AsyncImageView* asyncImage = [[[AsyncImageView alloc] initWithFrame:frame] autorelease];
[asyncImage loadImageFromURL:imageURL];
cell.imageView.image = asyncImage.image;

1 Ответ

0 голосов
/ 03 декабря 2009

В том коде, который вы опубликовали, изображение AsyncImageView не устанавливается до тех пор, пока соединение не завершит загрузку, и оно фактически не создаст изображение. Проблема в том, что вы устанавливаете его изображение в ячейку немедленно. Это не сработает!

Вы захотите создать собственный класс ячейки (подкласс UITableViewCell) и использовать эту ячейку в своей таблице. Существует множество примеров кода, показывающих, как использовать пользовательские ячейки и размещать их в представлениях. Вместо использования стандартного imageView UITableViewCell создайте свой собственный макет и используйте AsyncImageView, чтобы показать ваше изображение. Тогда это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...