我有一个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
}
}
我的问题是没有删除这些行。
答案 0 :(得分:0)
在推或选择第二个细胞或任何细胞时尝试这个..
[self.boardView.path removeAllObjects];
[self.boardView setNeedsDisplay];
或
[self.grid.sommesPathArray removeAllObjects];
[self.boardView setNeedsDisplay];
或者只是删除你的视图链接上用于绘制线的UIBezierPath
的所有点。
[myPath removeAllPoints];
[self setNeedsDisplay];