Свернуть UITableViewCell при втором щелчке - PullRequest
0 голосов
/ 14 июля 2011

Я хочу расширить UITableViewCell с помощью этой функции, вызывая из didSelectRowAtIndexPath:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {  
     if(selectedCellIndexPath != nil &&
       [selectedCellIndexPath compare:indexPath] == NSOrderedSame)
        return 128;  
    return 43;  
}

Нажатие на ячейку расширяет ее, нажатие на другую ячейку сворачивает в старую и расширяет новую ячейку. Все идет нормально. Но я также хочу свернуть ячейку при нажатии на расширенную ячейку и не знаю как?

В качестве бонуса: отображается содержимое нерасширенной ячейки, перекрывая ячейку ниже. Как я могу предотвратить отображение контента, который должен быть обрезан по размеру свернутой ячейки?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2011

Вы также можете использовать BOOL, объявленный в вашем заголовке, а затем int ваш

-didSelectRowAtIndexPath:indexPath {
if(your condition) {

BOOL Selected = YES

[tableView reloadRowAtIndexPath:indexPath]
  }
}

и

-heightForRowAtIndexPath:indexPath {

if(indexPath.Section == TheOneYouWant && indexPath.row == TheOneYouWant && Selected)
return YourHeight;
else if (indexPath.Section == TheOneYouWant && indexPath.row == TheOneYouWant && !Selected)
return yourOtherHeight;
}
0 голосов
/ 14 июля 2011

Звучит так, как будто вам просто нужно проверить didSelectRowAtIndexPath:…, если indexPath равно selectedCellIndexPath, тогда установите selectedCellIndexPath на nil.

Вы не предоставили этот код,так что я просто догадываюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...