在我的应用中,我正在保存带有绘图的图像视图。当我尝试将标签作为子视图添加到图像视图时,图像已成功保存,但没有标签。有什么想法吗? mainImage是UIImageView,playNameDisplay是UILabel。
这是我的代码:
UIGraphicsBeginImageContextWithOptions(self.mainImage.bounds.size, NO, 0.0);
[self.mainImage.image drawInRect:CGRectMake(0, 0, self.mainImage.frame.size.width, self.mainImage.frame.size.height)];
[mainImage addSubview:playNameDisplay];
UIImage *SaveImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(SaveImage, self,@selector(image:didFinishSavingWithError:contextInfo:), nil);
答案 0 :(得分:0)
尝试将子视图带到前面的属性并检查。就像这样:
如果将Label添加为图像视图的子视图,请使用此选项。
[self.mainImage bringSubViewToFront:playNameDisplay];
如果将标签和图像视图添加为视图中的子视图:(除了图像视图和标签重叠之外什么都没有)使用它。
[self.view bringSubviewToFront:playNameDisplay];
答案 1 :(得分:0)
如果你使用的是iOS7,你可以使用apple的新快照api。
UIGraphicsBeginImageContextWithOptions(image.size, NULL, 0);
[view drawViewHierarchyInRect:rect];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
您调用drawViewHierarchyInRect的视图应该是将UILabelView作为子视图的UIImageView。如果您可以访问Apple WWDC 2013视频,则应该查看iOS上的实现Engaging UI。它有一些很好的代码示例,并且还会检查与传统方法相比的性能改进。