Разработих проект, при който потребител рисува изображение върху платно, аз го съхранявам във файла с помощта на CoreData, имам връзка "един към много", наречена папка към файлове. Така че тук всичко са изображения. Извличам изображенията от файлове, преоразмерявам според височината на клетката на моята таблица и го показвам на маса. След като се покаже, искам да кеширам изображенията.
Имам и някои етикети в клетката на папката, които ми дават някаква информация относно моите файлове, които актуализирам в движение. Също така плъзгам клетките, за да го маркирам завършен и го премествам в долната част на клетката.
Също така показвам едни и същи файлови изображения в различни изгледи в зависимост от това как потребителят ги пита.
Искам да знам кой е най-добрият метод за това, четох в мрежата, има много методи, GCD, NSOperationQueue и много други.
Кой метод ще е най-подходящ за мен.
Искам да покажа някакъв код
- (UITableViewCell *)tableView:(FMMoveTableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
FolderCell *tableCell = (FolderCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (tableCell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"FolderCell" owner:self options:nil];
tableCell = [nib objectAtIndex:0];
}
NSMutableArray *categoryArray = [[self.controller fetchedObjects]mutableCopy];
Folder *category = [categoryArray objectAtIndex:[indexPath row]];
[tableCell configureCellWithNote:category]; //This function is written in my FolderCell.m function
}
return tableCell;
}
-(void)configureCellWithNote:(Folder *)category
{
self.category = category;
UIImage *image1 = [UIImage imageWithData:category.noteImage];
CGSize newSize;
if(image1.size.width == 620 && image1.size.height == 200)
{
newSize = CGSizeMake(300, 97);
}
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image1 drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.notesImage.image = newImage;
}
Това, което се случва тук, е, че configureCellWithNote отнема много време, защото преоразмерява изображения. Моля, помогнете ми да реша как може да се реши този проблем с производителността.
Поздрави Rajit
UIImage
. Освен това какво ще стане, ако изображението не е 620x200, това няма да работи правилно. По-безопасно е да използвате общ алгоритъм за преоразмеряване, за който можете да използватеUIViewContentModeScaleAspectFill
илиUIViewContentModeScaleAspectFit
, напр. stackoverflow.com/questions/10491080/ - person Rob   schedule 11.12.2013