在drawrect中从数组中绘制字符串

时间:2012-02-15 01:08:12

标签: ios5 delegates drawrect

我正在尝试从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,所以我想问题来自于我如何实现数据源协议。

1 个答案:

答案 0 :(得分:0)

这是一个糟糕的问题,其回答并不在于发布的代码中。问题是,我没有将视图控制器设置为委托。我补充说:self._equationView.dataSource=self;问题解决了。