如何擦除绘制的直线?

时间:2013-04-01 10:32:28

标签: iphone objective-c uiview drawrect

我有一个UIView BoardView,我在其中绘制线条。 当我在表格视图中按下一个单元格时,我在BoardView中绘制一条线。

当我按下第一个单元格时,一切正常,画出了线条。 现在,如果我按下第二个单元格,我想擦除第一行并绘制第二行。

我有一个布尔值来知道我是否必须画线。

在viewController中:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    if(self.boardView.drawLine) {
        self.boardView.drawLine = NO;
       [self.boardView setNeedsDisplay]; //redisplay the context without lines
    }

    Path * path = [self.grid.sommesPathArray objectAtIndex:indexPath.row];
    [self.boardView drawPath:path];
    self.boardView.drawLine = YES;
    [self.boardView setNeedsDisplay]; // display the context with a line
}

在BoardView.m中:

- (void)drawRect:(CGRect)rect {

    if (self.drawLine) {
            for(Line * line in lines)
            [self drawLineWithContext: UIGraphicsGetCurrentContext() andLine:line]; //draw lines
    }

}

我的问题是没有删除这些行。

1 个答案:

答案 0 :(得分:0)

在推或选择第二个细胞或任何细胞时尝试这个..

    [self.boardView.path removeAllObjects];  
    [self.boardView setNeedsDisplay];

    [self.grid.sommesPathArray removeAllObjects];    
    [self.boardView setNeedsDisplay];

或者只是删除你的视图链接上用于绘制线的UIBezierPath的所有点。

[myPath removeAllPoints];
[self setNeedsDisplay];