Должен ли я сначала преобразовать его в изображение?
Да.Вы можете использовать CGBitmapContextCreateImage
, а затем использовать его для рисования в графическом контексте из drawRect:
.
Если это так, разве это не будет дорогой операцией?
CGBitmapContext
-> CGImage
один вариант из нескольких - используйте лучшее для выполнения задачи.Если вы принимаете правильные дизайнерские решения, это редко становится препятствием.
CGImage
, NSImage
и UIImage
являются неизменными.Они избегают копирования, которого вы можете ожидать при создании.
Большие изображения, очевидно, могут занимать достаточно много памяти, и может быть дорого нарисовать изображение в растровом изображении, а затем нарисовать изображение в размерекроме его собственного размера.
Повторно используйте созданные вами изображения и удерживайте их соответствующим образом.Профиль время от времени, чтобы увидеть, как идут дела.