kSBCanvas是一个SBCanvas,它是UIImageView的子类。它有一些UIImageView子视图。这一切都让iPhone屏幕变得很棒。
我需要将kSBCanvas及其子视图合成到我想写入磁盘的imageview。
我执行以下操作:
UIGraphicsBeginImageContext(kSBCanvas.bounds.size);
[kSBCanvas drawRect: [kSBCanvas bounds]];
UIImage *theImage=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
然后获取PNG表示并将其写入磁盘。
kSBCanvas呈现,但不是子视图图像。我查了一下,kBCanvas有子视图。我是否必须明确地在子视图上调用drawRect?很容易,但似乎不对。
答案 0 :(得分:1)
请改为尝试:
UIGraphicsBeginImageContext(kSBCanvas.bounds.size);
{
[kSBCanvas.layer renderInContext: UIGraphicsGetCurrentContext()];
UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
}
UIGraphicsEndImageContext();
渲染图层也应该渲染所有子视图。