2014-12-29 2 views
0

Я использую UIGraphicsBeginImageContext для захвата экрана, но качество изображения не очень хорошее. Может ли кто-нибудь помочь мне сохранить UICollectionViewCell в качестве изображения высокого качества и как получить размер динамической ячейки при выборе ячейки.Сохранить UICollectionViewCell как изображение с использованием UIGraphicsBeginImageContext

+1

Показать Ваш код. Как вы создаете контекст и рисуете ячейку? Что вы хотите сделать с изображением? Не могли бы вы использовать представление моментального снимка? – jrturton

+0

Этот вопрос не представляет интереса для решения проблемы самостоятельно. Вы пытались это сделать? Любой код? С какими проблемами вы столкнулись? Пользователи SOF должны помочь с проблемами не писать код вместо вас ... Сделайте добросовестную попытку решить проблему самостоятельно. – Vive

ответ

1

Метод CollectionView делегата получит ячейку, когда она будет выбрана, и изображение ячейки будет сохранено в каталоге документов проекта.

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath]; 

    UIGraphicsBeginImageContext(cell.bounds.size); 

    [cell.layer renderInContext:UIGraphicsGetCurrentContext()]; 

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"New ImageFolder"]; 

    NSError *error = nil; 
    if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath]) 
     [[NSFileManager defaultManager] createDirectoryAtPath:stringPath withIntermediateDirectories:NO attributes:nil error:&error]; 

    NSString *fileName = [stringPath stringByAppendingFormat:@"/image.jpg"]; 
    NSData *data = UIImageJPEGRepresentation(newImage, 1.0); 
    [data writeToFile:fileName atomically:YES]; 

} 
+0

спасибо за помощь. Я добрый, новичок в программировании на ios, поэтому не мог много рассказать о себе. Но упомянутый код - большая помощь. – sam4u

+0

это работало для u? –

+0

Да, но качество изображения не очень хорошее. – sam4u