Установить графический контекст для отображения UIImage (Obj-C) - PullRequest
1 голос
/ 29 января 2010

Я пытаюсь визуализировать UIImage в Objective-C (работаю над простым приложением для iPhone (в стиле прорыва), чтобы привыкнуть к окружающей среде). Тем не менее, я получаю сообщение об ошибке «Ошибка: CGContextDrawImage: неверный контекст», когда я пытаюсь его нарисовать.

Мой вопрос: как мне установить контекст, который использует метод DrawAtPoint в UIImage?

Вот соответствующий код для того, как я инициализирую / вызываю все:

@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. Буду очень признателен за любую помощь / указатели где-нибудь, которые объяснят, как установить контекст.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 29 января 2010

Если это должно быть нарисовано на экране, вам нужно найти свой код для рисования в методе -drawRect: для UIView (или –drawInContext: для CALayer). Чтобы обновить его содержимое, вам нужно позвонить -setNeedsDisplay на UIView или CALayer. Попытка рисования в любое другое время приведет к появлению ошибки «неверный контекст».

2 голосов
/ 29 января 2010

Попробуйте обернуть вызов в UIGraphicsBeginImageContext() и UIGraphicsEndImageContext().

...