Я думаю, что предоставленный ответ будет точным, если вы хотите анимировать только одну строку в ответ на выбор.
Я искал способ сделать это с несколькими строками одновременно, без выбора и отмены выбора строк в ответ на касание. Я сделал следующее:
Создал метод в моем UITableViewController с именем "calloutCells":
- (void)calloutCells:(NSArray*)indexPaths
{
[UIView animateWithDuration:0.0
delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^void() {
for (NSIndexPath* indexPath in indexPaths)
{
[[self.tableView cellForRowAtIndexPath:indexPath] setHighlighted:YES animated:YES];
}
}
completion:^(BOOL finished) {
for (NSIndexPath* indexPath in indexPaths)
{
[[self.tableView cellForRowAtIndexPath:indexPath] setHighlighted:NO animated:YES];
}
}];
}
Обратите внимание, что длительность и задержка не изменяют выбранную мной анимацию, поскольку я использую встроенную анимацию в setHighlighted.
Когда я хочу запустить анимацию выделения / отмены выделения из UITableViewController, я могу одновременно выделить строки 3 и 4 раздела 0 следующим образом:
[self calloutCells:[NSArray arrayWithObjects:
[NSIndexPath indexPathForRow:3 inSection:0],
[NSIndexPath indexPathForRow:4 inSection:0], nil]];
Надеюсь, это поможет кому-то еще!