【发布时间】:2010-04-06 14:25:34
【问题描述】:
我有一个视图,它有一个 drawRect 方法,我知道这个方法是我控制视图在其上绘制东西的唯一方法。所以,我尝试以这种方式绘制我的绘图逻辑:
- (void)drawRect:(CGRect)rect {
//my drawing code...
}
在我看来,我使用IB来链接这个类。
[myView setNeedsDisplay];
它可以工作,所以,我设计在 drawRect 方法中有一个 Command 对象,这样我就可以根据我的 Cmd 动态绘图。这是我修改后视图中的代码:
- (void)drawRect:(CGRect)rect {
self.cmdToBeExecuted = [[DrawingSomethingCmd alloc] init];
[self.cmdToBeExecuted execute];
}
我的 DrawingsomthingCmd:
@implementation DrawingSomethingCmd
-(void)execute{
//my drawing code;
}
它也有效。但问题是,如何动态分配 self.cmdToBeExecuted。 另外,我像这样改变了我的drawRect:
- (void)drawRect:(CGRect)rect {
[self.cmdToBeExecuted execute];
}
因为我有这个链接到IB,
IBOutlet myDrawingView *myView;
但是在我输入 [myView ... ...] 之后,它不允许我获取变量 cmdToBeExecuted。我准备好让我的变量在 .h 中可访问:
@property (nonatomic, retain) Command *cmdToBeExecuted;
还有.m:
@synthesize cmdToBeExecuted;
【问题讨论】:
标签: objective-c iphone-sdk-3.0 quartz-graphics