1

Objective-C で UIImage をレンダリングしようとしています (環境に慣れるために単純な iPhone アプリ (ブレイクアウト型のもの) に取り組んでいます)。ただし、描画しようとすると「エラー: CGContextDrawImage: コンテキストが無効です」というエラーが表示されます。

私の質問は: UIImage の DrawAtPoint メソッドが使用するコンテキストを設定するにはどうすればよいですか?

ここに、すべてを初期化/呼び出す方法に関連するコードがあります:

@interface GameItem : NSObject
{
    IBOutlet UIImage    * sprite;
    CGPoint                 pos;
}

- (id) initWithPositionAndSprite: (CGPoint)placementPosition :(UIImage*) blockImage;
- (void) update;

@property CGPoint pos;

@end

更新中:

[sprite drawAtPoint:pos];

そしてそれを次のように初期化します:

newBall = [[Ball alloc] initWithPositionAndSprite:CGPointMake(3.0, 4.0) :[UIImage imageNamed:@"ball.png"]];

(Ball は GameItem を継承していますが、まだ何も変わっていません)

私は、drawAtPoint 呼び出し afaik から無効なコンテキストを取得しています。コンテキストを設定する方法を説明するどこかへのヘルプ/ポインタは大歓迎です。

ありがとう!

4

2 に答える 2

3

これを画面に描画する場合は、 a (またはa ) の-drawRect:メソッド内に描画コードを配置する必要があります。その内容を更新するには、またはを呼び出す必要があります。それ以外のときに描画を試みると、表示されている「無効なコンテキスト」エラーが発生します。UIView–drawInContext:CALayer-setNeedsDisplayUIViewCALayer

于 2010-01-29T19:22:55.110 に答える
2

呼び出しをUIGraphicsBeginImageContext()とでラップしてみてくださいUIGraphicsEndImageContext()

于 2010-01-28T23:27:35.093 に答える