Перезагрузка таблицы анимации - PullRequest
7 голосов
/ 26 декабря 2011

Таким образом, когда пользователь нажимает на ячейку в моей таблице, я фактически не нажимаю на новый контроллер представления, я просто перезагружаю данные внутри этого tableView.

Однако я хочу получить эффект, похожий на то, на что он был бы похож, если бы я действительно выдвинул новый контроллер вида.

Кто-нибудь знает, как я могу сдвинуть старый контент со старого контента с экрана и новый контент на экран для всей таблицы?

Ответы [ 2 ]

13 голосов
/ 26 декабря 2011

В зависимости от того, сколько разделов у вас есть, вы можете использовать - (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation

Так что вы можете сделать что-то вроде этого:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    [tableView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0,[self numberOfSectionsInTableView])] withRowAnimation:UITableViewRowAnimationRight];
}
0 голосов
/ 25 апреля 2017

Простая анимация

    func animateTable() {
    self.reloadData()

    let cells = self.visibleCells
    let tableHeight: CGFloat = self.bounds.size.height

    for i in cells {
        let cell: UITableViewCell = i as UITableViewCell
        cell.transform = CGAffineTransform(translationX: 0, y: tableHeight)
    }

    var index = 0

    for a in cells {
        let cell: UITableViewCell = a as UITableViewCell

        UIView.animate(withDuration: 1.5, delay: 0.05 * Double(index), usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: UIViewAnimationOptions.curveLinear, animations: {
            cell.transform = CGAffineTransform.identity
        }, completion: nil)

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