Как нарисовать UIImage или непосредственно в -drawRect:?

У меня есть UIImage, который я хочу нарисовать на UIView. Но вместо создания UIImageView и добавления этого в качестве подвью, я хочу перезаписать -drawRect: и напрямую нарисовать UIView.

Например, мой код выглядит так:

- (void)drawRect:(CGRect)rect {
    CGContextRef myContext = UIGraphicsGetCurrentContext();

    UIImage *img = [UIImage imageNamed:@"foo.png"];

    // how to draw the directly into the view now?
}

Ответ 1

Вызов [img drawInRect:rect];.

Ответ 2

Кстати, вы не должны загружать файл изображения в метод drawRect. Потому что метод вызывается всякий раз, когда требуется обновлять представление. Следовательно, это (конечно, процедура загрузки) можно назвать много раз во время работы. (Кроме того, метод OS2.x imageNamed имеет ошибку - не кэшировал изображение и не просочился.)

Поэтому вам лучше загрузить файл в метод инициализации, а не в drawRect.