从UIImageView创建UIImage

and*_*nnn 1 uiimageview uiimage ios

UIImageViewUILabel它创建了一个子视图:

 UIImageView *img=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, [[UIScreen mainScreen] bounds].size.height)];
    img.backgroundColor=self.view.backgroundColor;

    UILabel *textOne=[[UILabel alloc]initWithFrame:CGRectMake(10, 10, 290, 250)];
    textOne.text=_textOneLabel.text;
    textOne.textColor=_textOneLabel.textColor;

    UILabel *textTwo = [[UILabel alloc] initWithFrame:CGRectMake(100,180,200,100)];
    textTwo.text=_textTwoLabel.text;
    textTwo.textColor=_textTwoLabel.textColor;

    [img addSubview:textOne];
    [img addSubview:textTwo];

    UIImageWriteToSavedPhotosAlbum(img.image, nil, nil, nil); //img.image is null
Run Code Online (Sandbox Code Playgroud)

我想创建一个UIImage将其保存在相机胶卷中,UIImageView并创建和2 UILabel.img.image返回null,因为没有分配给的图像UIImageView.
你知道如何实现这个目标吗?

小智 6

使用下面的方法将您的UIImageView转换为UIImage.

UIImage *image = [self ChangeImageViewToImage:img];
Run Code Online (Sandbox Code Playgroud)

//方法

-(UIImage *) ChangeImageViewToImage : (UIImageView *) view{

 UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
 [view.layer renderInContext:UIGraphicsGetCurrentContext()];

 UIImage * img = UIGraphicsGetImageFromCurrentImageContext();

 UIGraphicsEndImageContext();

 return img;

}
Run Code Online (Sandbox Code Playgroud)