Я разработал проект, в котором пользователь рисует изображение на холсте, я сохраняю его в файле с помощью CoreData, у меня есть отношение «один ко многим», называемое «папка-к-файлам». Итак, здесь все изображения. Я извлекаю изображения из файлов, изменяю размер в соответствии с высотой ячейки таблицы и показываю их на столе. Как только это показано, я хочу кэшировать изображения.
У меня также есть несколько меток в ячейке папки, которые дают мне некоторую информацию о моих файлах, которые я обновляю на лету. Я также прокручиваю ячейки, чтобы пометить их как завершенные, и перемещаю их в нижнюю часть ячейки.
Я также показываю одни и те же изображения файлов в разных представлениях в зависимости от того, как пользователь их запрашивает.
Я хочу знать лучший метод для этого, я читал в Интернете, их много методов, GCD, NSOperationQueues и многое другое.
Какой способ мне больше подойдет.
Я хочу показать код
- (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 занимает много времени, потому что изменяет размер изображений. Пожалуйста, помогите мне решить, как решить эту проблему с производительностью.
С уважением Раджит
UIImage
. Кроме того, что, если бы изображение было не 620x200, это не работало бы должным образом. Безопаснее использовать общий алгоритм изменения размера, для которого вы можете использоватьUIViewContentModeScaleAspectFill
илиUIViewContentModeScaleAspectFit
, например. stackoverflow.com/questions/10491080/< /а> - person Rob   schedule 11.12.2013