我正在尝试从drawrect中的数组中绘制字符串,但它们并未被绘制。 drawRect代码看起来像这样
- (void)drawRect:(CGRect)rect
{
UIFont *font = [UIFont systemFontOfSize:14];
CGRect ourRect;
ourRect.origin.x=ourRect.origin.y=20.0;
ourRect.size.width=130.0;
ourRect.size.height= 100.0;
CGPoint pointer;
pointer.x=pointer.y=20;
NSString*string;
string=[[NSString alloc] init];
[string drawAtPoint:pointer withFont:font];
NSMutableArray * whatShouldIDraw=[[NSMutableArray alloc]init];
whatShouldIDraw=[self.dataSource whatToDraw:self];
NSUInteger i;
for (i=0; i<[whatShouldIDraw count]; i++) {
[[[whatShouldIDraw objectAtIndex:i] equationBit] drawAtPoint:[[whatShouldIDraw objectAtIndex:i]drawPoint] withFont:font];
}
}
dataSource协议在视图的控制器中实现。数组中的对象是一个包含字符串的类和一个用于绘制该字符串的点。我使用NSLog确保对象实际上正确地放入数组(它们是)。此外,还有一行将setNeedsDisplay发送到视图。当我运行这段代码时,它会出现空白,所以我不确定会出现什么问题。这是我第一次尝试使用从应用程序中输入的数据运行drawRect,所以我想问题来自于我如何实现数据源协议。
答案 0 :(得分:0)
这是一个糟糕的问题,其回答并不在于发布的代码中。问题是,我没有将视图控制器设置为委托。我补充说:self._equationView.dataSource=self;
问题解决了。