如何绘制UIImage或直接在-drawRect:?

时间:2009-11-02 21:27:39

标签: iphone cocoa-touch 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?
}

2 个答案:

答案 0 :(得分:84)

致电[img drawInRect:rect];

答案 1 :(得分:30)

顺便说一句,你不应该在drawRect方法中加载图像文件。因为只要需要更新视图,就会调用该方法。因此,它(当然,加载程序)可能在运行期间被多次调用。 (此外,OS2.x的imageNamed方法有一个错误 - 没有缓存图像并泄露它。)

因此,您最好在初始化方法中加载文件,而不是在drawRect中加载。