kSBCanvas是SBCanvas,它是UIImageView的子类。它具有几个UIImageView子视图。所有这些都为iPhone屏幕带来了绝佳的呈现效果。

我需要将kSBCanvas及其子视图合成到要写入磁盘的imageview。

我执行以下操作:

 UIGraphicsBeginImageContext(kSBCanvas.bounds.size);
 [kSBCanvas drawRect: [kSBCanvas bounds]];

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


然后获取一个PNG表示形式并将其写入磁盘。

kSBCanvas呈现但不呈现子视图图像。我检查了一下,kBCanvas有子视图。我是否必须在子视图上显式调用drawRect?足够容易,但是看起来并不正确。

最佳答案

尝试以下方法:

UIGraphicsBeginImageContext(kSBCanvas.bounds.size);
{
    [kSBCanvas.layer renderInContext: UIGraphicsGetCurrentContext()];
    UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
}
UIGraphicsEndImageContext();


渲染层也应该渲染所有子视图。

07-25 23:18