Сохранить фото с записью в PhotoAlbum

У меня есть подкласс UIView, содержащий письменную рекламу, и я хочу добавить ее на фотографию в графическом контексте, но этот UIView не сохраняется в фотоальбоме при сохранении фотографии. Это код:

 - (IBAction)saveAction:(id)sender{


CGRect newFrame=imageInImageViewFrame(self.userImageView.bounds,self.userImageView.bounds.size);


CGSize imageSize=self.userImageView.bounds.size;

if (NULL != UIGraphicsBeginImageContextWithOptions)
    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);
else
    UIGraphicsBeginImageContext(imageSize);

CGContextRef context = UIGraphicsGetCurrentContext();

UIGraphicsPushContext(context);

[self.userImageView.image drawInRect: newFrame];
self.banner =[[Banner alloc]initWithFrame:CGRectMake(0, 324, 320, 48)];//this is the UIView that I want add on photo

[self.userImageView addSubview:self.banner];
NSLog(@"The image is %@", self.banner);

UIGraphicsPopContext();
[self renderView:self.gestureView inContext:context ];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil);

UIGraphicsEndImageContext();

NSString *docPath=(NSString*)[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,   NSUserDomainMask, YES) objectAtIndex:0];
NSString *imagesPath=[NSString stringWithFormat:@"%@/%@/%@",docPath, self.profileName,imageDirectory];
     //trovare progressivo forse con enumerazione di directory
[[NSFileManager defaultManager]createDirectoryAtPath:imagesPath withIntermediateDirectories:NO attributes:nil error:nil]; //crazione di una directory a un certo indirizzo
NSData *imageData=UIImageJPEGRepresentation(screenshot, 0.9);
NSMutableArray *dirContent=[[[NSFileManager defaultManager]contentsOfDirectoryAtPath:imagesPath error:nil]mutableCopy]; //copia del contenuto della directory
[dirContent removeObject:@".DS_Store"]; //rimuove il file nascosto
NSArray *sortedFileNames=[dirContent sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSString *lastFileName=[sortedFileNames lastObject];
[dirContent release];

int progressiveImageNumber=[[[lastFileName componentsSeparatedByString:@"_"]objectAtIndex:1]intValue];
NSString *fullImageNamePath=[NSString   stringWithFormat:@"%@/photoImage_%.2d.jpg",imagesPath,progressiveImageNumber+1];
NSLog(@"fullimagepath:%@",fullImageNamePath);

[imageData writeToFile:fullImageNamePath atomically:YES];     

}

Фотография сохраняется, но UIView не сохраняется. Как я могу сделать? заранее спасибо


person Adriana Carelli    schedule 12.06.2012    source источник
comment
фото сохраняется а UIView на не сохраняется.. не понял..   -  person Bharathi D    schedule 12.06.2012
comment
UIView находится на фотографии как подвид   -  person Adriana Carelli    schedule 12.06.2012


Ответы (1)


Используйте этот код в своем методе, удалив свой код:

 UIGraphicsBeginImageContext(self.gestureView.bounds.size);
 [self.gestureView.layer renderInContext:UIGraphicsGetCurrentContext()];
 UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();

 // save image to photos
 UIImageWriteToSavedPhotosAlbum(screenShot, self, nil, nil);
person Paresh Navadiya    schedule 12.06.2012
comment
Я должен добавить self.banner в качестве подвида фотографии - person Adriana Carelli; 12.06.2012
comment
Спасибо, решение такое: [self.banner.layer renderInContext:UIGraphicsGetCurrentContext()]; - person Adriana Carelli; 12.06.2012