Как отменить выбор выбранной ячейки UITableView? - PullRequest
199 голосов
/ 19 октября 2010

Я работаю над проектом, в котором мне нужно предварительно выбрать конкретную ячейку.

Я могу предварительно выбрать ячейку, используя -willDisplayCell, но не могу отменить ее выбор, когда пользователь нажимает на любую другую ячейку.,

- (void)tableView:(UITableView*)tableView 
        willDisplayCell:(UITableViewCell*)cell
        forRowAtIndexPath:(NSIndexPath*)indexPath
{ 
    AppDelegate_iPad *appDelegte = 
      (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate];

    if ([appDelegte.indexPathDelegate row] == [indexPath row])
    {
        [cell setSelected:YES];    
    } 
}

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

    AppDelegate_iPad *appDelegte = 
      (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate];

    NSIndexPath *indexpath1 = appDelegte.indexPathDelegate;
    appDelegte.indexPathDelegate = indexPath;
    [materialTable deselectRowAtIndexPath:indexpath1 animated:NO];
}

Вы можете помочь?

Ответы [ 23 ]

1 голос
/ 11 февраля 2016

Свифт

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    // your code

    // your code

    // and use deselect row to end line of this function

    self.tableView.deselectRowAtIndexPath(indexPath, animated: true)

}
0 голосов
/ 07 декабря 2016

Чтобы отменить выбор (DidDeselectRowAt) при первом нажатии по нажатию из-за предварительно загруженных данных;вам нужно сообщить tableView, что строка уже выбрана для начала, чтобы при первоначальном щелчке отменить выбор строки:

// Swift 3:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if tableView[indexPath.row] == "data value"

        tableView.selectRow(at: indexPath, animated: false, scrollPosition: UITableViewScrollPosition.none)

    }
}
0 голосов
/ 25 ноября 2016

Свифт 3,0

    tableView.deselectRow(at: indexPath, animated: true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...