/ / Uitableview Клітинка Анімація на зразок Secret App - ios, object-c, uitableview, animation

Анімація "Uitableview Cell", така як "Секретне додаток" - це, об'єктивне, огляд, анімація

Будь-яка ідея, як я можу реалізувати Секретний додаток Налаштування списку стільникової анімації.

Я намагався з цим, але не будь-який успіх, тому що його додавання всіх рядків в той же час.

[self.tableview reloadSections: sectionIndexSet withRowAnimation: UITableViewRowAnimationBottom];

Якщо я вставляю один за одним рядок, то ця анімація не працює анімації знизу вгору.

Будь-яка пропозиція, як я можу це зробити?

Відповіді:

8 для відповіді № 1

Спробуйте цю реалізацію:

//From UITableViewDelegate calls
- (void)tableView:(UITableView *)tableView
willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath{
CGRect myRect = [tableView rectForRowAtIndexPath:indexPath];

//instead of 568, choose the origin of your animation
cell.frame = CGRectMake(cell.frame.origin.x,
cell.frame.origin.y + 568,
cell.frame.size.width,
cell.frame.size.height);

[UIView animateWithDuration:0.5 delay:0.1*indexPath.row options:UIViewAnimationOptionCurveEaseInOut animations:^{
//instead of -30, choose how much you want the cell to get "under" the cell above
cell.frame = CGRectMake(myRect.origin.x,
myRect.origin.y - 30,
myRect.size.width,
myRect.size.height);

} completion:^(BOOL finished){
[UIView animateWithDuration:0.5 animations:^{
cell.frame = myRect;
}];

}];
}

1 для відповіді № 2

Swift-4 версія відповіді Клаудіо

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {


let rect = tableView.rectForRow(at: indexPath)

cell.frame = CGRect(x: cell.frame.origin.x,
y: cell.frame.origin.y + 568,
width: cell.frame.size.width,
height: cell.frame.size.height)

UIView.animate(withDuration: 0.5, delay: 0.1*Double(indexPath.row), options: UIViewAnimationOptions.curveEaseInOut, animations: {
cell.frame = CGRect(x: rect.origin.x,
y: rect.origin.y-30,
width: rect.width,
height: rect.height)
}) { (completed) in
UIView.animate(withDuration: 0.5, animations: {
cell.frame = rect
})
}

}