Об обновлении View с помощью iPhone с помощью Objective C - PullRequest
0 голосов
/ 05 апреля 2010

У меня есть сцена, называемая testScene, она работает так:

@interface testScene : myScene {
 IBOutlet UIView *subview;
 IBOutlet UIView *drawingCanvasView;
 IBOutlet UIButton *update;
}

- (void)updateDrawingCanvas: (id) sender;

и когда пользователь нажимает кнопку обновления, он запускает метод updateDrawingCanvas. Итак, у меня есть DrawingCanvasView, который дал DrawingCanvas.h, и .m, это так:

#import <UIKit/UIKit.h>


@interface DrawingCanvasView : UIView {
 CGImageRef image;

}

-(void)setNeedsDisplayInRect:(CGContextRef)context;

@end

В DrawingCanvasView у меня есть метод drawRect, подобный этому:

 CGContextRef context = UIGraphicsGetCurrentContext();
 CGContextSetLineWidth(context, 2.0); 
 CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor); 
 CGContextMoveToPoint(context, 0.0f, 0.0f);
 CGContextAddLineToPoint(context, 100.0f, 100.0f); 
 CGContextStrokePath(context);

И я хочу, чтобы пользователь нажал кнопку и выполнил это, поэтому я добавил новый метод с именем setNeedsDisplayInRect:

 CGContextRef context = UIGraphicsGetCurrentContext();
 CGContextSetLineWidth(context, 2.0); 
 CGContextSetStrokeColorWithColor(context, [UIColor yellowColor].CGColor); 
 CGContextMoveToPoint(context, 0.0f, 0.0f);
 CGContextAddLineToPoint(context, 200.0f, 200.0f); 
 CGContextStrokePath(context);

Но я не могу вызвать это в моем методе updateDrawingCanvas, он работает так:

- (void)updateDrawingCanvas: (id) sender{
 NSLog(@"loaded");
 [DrawingCanvasView setNeedsDisplayInRect:UIGraphicsGetCurrentContext()];
}

Это моя логика / концепция, верно? или что-то я не так сделал, спасибо.

1 Ответ

3 голосов
/ 05 апреля 2010

Нет, вы не перезаписываете setNeedsDisplayInRect:. Вы реализуете код рисования в drawRect:, и когда вы вызываете setNeedsDisplayInRect:, фреймворк гарантирует, что ваш drawRect: будет вызван.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...