Я создаю UITableView, аналогичный представлению просмотра альбомов iPod.app:
![IMG_2316.PNG](https://i.stack.imgur.com/OJHy8.png)
При первом запуске я импортирую всех исполнителей и обложки альбомов из библиотеки iPod.,Сохранение всего в CoreData и возврат его обратно в NSFetchedResultsController.Я повторно использую идентификаторы ячеек, и в моем методе cellForRowAtIndexPath:
у меня есть этот код:
Artist *artist = [fetchedResultsController objectAtIndexPath:indexPath];
NSString *identifier = @"bigCell";
SWArtistViewCell *cell = (SWArtistViewCell*)[tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil)
cell = [[[SWArtistViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease];
cell.artistName = artist.artist_name;
cell.artworkImage = [UIImage imageWithData:artist.image];
[cell setNeedsDisplay];
return cell;
В моей ячейке SWArtistViewCell реализован метод drawRect:
для рисования как строки, так и изображения:
[artworkImage drawInRect:CGRectMake(0,1,44,44)]
[artistName drawAtPoint:CGPointMake(54, 13) forWidth:200 withFont:[UIFont boldSystemFontOfSize:20] lineBreakMode:UILineBreakModeClip];
Прокрутка все еще прерывистая, и я просто не могу понять, почему.Приложения, такие как iPod и Twitter, имеют плавную прокрутку, и все же они оба рисуют небольшое изображение в ячейке, как и я.
Все мои взгляды непрозрачны.Чего мне не хватает?
РЕДАКТИРОВАТЬ : вот что говорит Акула:
![alt text](https://i.stack.imgur.com/6B4Uf.png)
Я не знаком с Акулой.Любой указатель, с чем связаны эти символы?Когда я смотрю на их след, все они указывают на мой метод drawRect:, в частности, чертеж UIImage.
![alt text](https://i.stack.imgur.com/iaru3.png)
Указало бы это на что-то еще, если бы удушение было при чтении файла?Это определенно рисунок?
РЕДАКТИРОВАТЬ: сохранение изображения
Я сделал так, как предложил pothibo, и добавил в свой класс Artist метод artworkImage, который сохраняет изображение, созданное с помощью imageWithData:
- (UIImage*)artworkImage {
if(artworkImage == nil)
artworkImage = [[UIImage imageWithData:self.image] retain];
return artworkImage;
}
Так что теперь я могу напрямую установить сохраненное изображение для моего TableViewCell следующим образом:
cell.artworkImage = artist.artworkImage;
Я также установил свой setNeedsDisplay внутри setArtworkImage: метод моего класса tableViewCell.Прокрутка все еще запаздывает, и Акула показывает точно такие же результаты.