Как заставить UIImageView и его подпредставления перерисовать в новом контексте? - PullRequest
2 голосов
/ 27 февраля 2010

kSBCanvas - это SBCanvas, который является подклассом UIImageView. У него есть несколько подпредставлений UIImageView. Все это прекрасно отображает экран iPhone.

Мне нужно объединить kSBCanvas и его подпредставления с изображением, которое я хочу записать на диск.

Я делаю следующее:

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

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

затем получите представление PNG и запишите его на диск.

kSBCanvas отображает, но не изображения подпредставления. Я проверил, и у kBCanvas есть подпредставления. Нужно ли явно вызывать drawRect для подпредставлений? Достаточно просто, но это не кажется правильным.

1 Ответ

1 голос
/ 27 февраля 2010

Попробуйте вместо этого:

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

Визуализация слоя также должна отображать все подпредставления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...