У меня есть UIImage
, который я хочу нарисовать на UIView
. Но вместо создания UIImageView
и добавления этого в качестве подвью, я хочу перезаписать -drawRect:
и нарисовать свой UIView напрямую.Как нарисовать UIImage или непосредственно в -drawRect :?
Например, мой код выглядит следующим образом:
- (void)drawRect:(CGRect)rect {
CGContextRef myContext = UIGraphicsGetCurrentContext();
UIImage *img = [UIImage imageNamed:@"foo.png"];
// how to draw the directly into the view now?
}
Существует также '[img drawAtPoint: point]', хотя я предпочитаю 'drawInRect:'. –
старайтесь избегать этой техники, если можете; DrawInRect и drawAtPoint имеют довольно ужасную производительность. – TomSwift
Спасибо. Я нашел их особенно полезными (в сочетании с аналогичными надстрочными надписями NSString UIKit) для представлений, содержащих фоновые изображения и текст, а затем добавленные в список прокрутки. Рисование фонового изображения и текста вместе в drawRect: позволяет избежать кварца из смешивания слоев (как это было бы, если бы вы использовали подход UIImageView & UILabel subviews), что оказывает значительное влияние на производительность прокрутки – cidered