0

線を引く UIView BoardView があります。テーブル ビューでセルをプッシュすると、BoardView で線が引かれます。

最初のセルを押すと、すべて問題なく、線が描画されます。ここで、2 番目のセルをプッシュすると、最初の行を消去して 2 番目の行を描画したいと思います。

線を引く必要があるかどうかを知るブール値があります。

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
    }

}

私の問題は、行が削除されていないことです。

4

1 に答える 1

0

2番目のセルまたは任意のセルを押すか選択するときに、これを試してください..

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

また

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

または、次のリンク先のビューで線を引くために使用されているすべてのポイントを削除するだけUIBezierPathです..

[myPath removeAllPoints];
[self setNeedsDisplay];   
于 2013-04-01T10:37:53.717 に答える