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();
渲染层也应该渲染所有子视图。