Я рисовал пользовательские ячейки таблицы (используя образцы из apple в качестве основы) и теперь пришел к необходимости создавать ячейку, которая отображает изображение из URL - каждая ячейка будет иметь свое изображение (на основе некоторых данные, которые он имеет), но все ячейки одинаковы и поэтому один и тот же идентификатор повторного использования.
Какова правильная структура для этого? Очевидно, мне нужно загрузить изображение в новой теме. Пока у меня есть следующая функция, сидящая в классе ячеек, который запускается в своем собственном потоке:
- (void)loadImage
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
self.img = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: [myProduct objectForKey:@"ImagePath"]]]];
[self setNeedsDisplay];
[pool release];
}
Когда я вызываю это из самой функции drawRect (что плохо), тогда это «работает», но это, очевидно, вызывается каждый раз, когда что-то происходит (выбор и т. Д.). Если я добавлю его в функцию инициализации ячеек uiview, то он будет вызван только для первых 8 ячеек, а затем они будут повторно использованы. Другие варианты привели к тому, что изображение не будет «сброшено» при повторном использовании ячейки, поэтому те же 8 изображений повторяются по таблице (хотя другой текст обновляется).
На данный момент я не беспокоюсь о кешировании, но есть ли примеры того, как это сделать, или кто-нибудь может указать мне правильное направление? Спасибо.