47

我有一个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?
}
4

2 回答 2

86

打电话[img drawInRect:rect];

于 2009-11-02T21:34:37.503 回答
30

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

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

于 2009-11-04T05:46:03.613 回答