У меня есть сцена, называемая 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()];
}
Это моя логика / концепция, верно? или что-то я не так сделал, спасибо.