CG рисунок в UIView для использования в качестве UIImage?
Я пытаюсь создать пользовательскую кнопку возврата для UINavigationbar.
Я знаю, что я могу использовать backButtonBackgroundImageForState:barMetrics:
установить изображение.
Моя проблема в том, что мне не нужно использовать файл изображения. Я бы предпочел нарисовать кнопку возврата в коде.
Мой вопрос заключается в том, могу ли я создать подкласс UIView, переопределить drawrec: нарисовать кнопку назад, а затем использовать этот UIView в качестве изображения в backButtonBackgroundImageForState:barMetrics
:
Я думаю, что это будет что-то вроде:
UIImage * backButtonImage = // somehow get image from my subclassed UIView;
backButtonImage = [backButtonImage stretchableImageWithLeftCapWidth: 15.0 topCapHeight: 30.0];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage: backButtonImage forState: UIControlStateNormal barMetrics: UIBarMetricsDefault];
Это даже лучший способ идти об этом? Или мне просто смириться с этим и создать изображение в фотошопе?
1 ответ
Вы можете создать контекст растрового изображения, используя UIGraphicsBeginImageContextWithOptions
без создания подкласса UIView
и переопределение drawRect:
,
UIGraphicsBeginImageContextWithOptions(CGSizeMake(80, 30), NO, 0);
// drawing code here
// Use UIKit functions and objects
// or use CoreGraphics functions on UIGraphicsGetCurrentContext()
UIImage *image = UIGraphicsGetImageFromCurrentContext();
UIGraphicsEndImageContext();