47

UIImage描きたい がありUIViewます。しかし、作成してこれをサブビューとして追加する代わりに、UIView を直接UIImageView上書きして描画したいと考えています。-drawRect:

たとえば、私のコードは次のようになります。

- (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 に答える