1

RootViewController 内に UITableView があり、セルがタップされたときに色を変更したいのですが、一度に有効にする必要があるのは 1 つだけです。

「CGRectにタップが含まれていない場合」と言うのが難しいです。

.m

- (void)changeColour:(UITapGestureRecognizer *)tap
{
    if (UIGestureRecognizerStateEnded == tap.state) {
        UITableView *tableView = (UITableView *)tap.view;
        CGPoint p = [tap locationInView:tap.view];
        NSIndexPath* indexPath = [tableView indexPathForRowAtPoint:p];
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        CGPoint pointInCell = [tap locationInView:cell];
        if (CGRectContainsPoint(cell.frame, p)) {
            UIView* view1 = [[UIView alloc] init];
                       view1.backgroundColor = [UIColor redColor];
                       [cell setBackgroundView:view1];

        } else  {
                       UIView* view1 = [[UIView alloc] init];
                       view1.backgroundColor = [UIColor whiteColor];
                       [cell setBackgroundView:view1];
        }
    }
}
4

1 に答える 1