我想在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?
}
答案 0 :(得分:84)
致电[img drawInRect:rect];
。
答案 1 :(得分:30)
顺便说一句,你不应该在drawRect方法中加载图像文件。因为只要需要更新视图,就会调用该方法。因此,它(当然,加载程序)可能在运行期间被多次调用。 (此外,OS2.x的imageNamed方法有一个错误 - 没有缓存图像并泄露它。)
因此,您最好在初始化方法中加载文件,而不是在drawRect中加载。