将UILabel添加到UIImageView

时间:2013-12-26 03:18:32

标签: uiimageview uilabel

在我的应用中,我正在保存带有绘图的图像视图。当我尝试将标签作为子视图添加到图像视图时,图像已成功保存,但没有标签。有什么想法吗? 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);

2 个答案:

答案 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。它有一些很好的代码示例,并且还会检查与传统方法相比的性能改进。