因此,当用户点击我的表格中的单元格时,我实际上没有推送到新的视图控制器,我只是重新加载该tableView中的数据。
但是,我希望得到一个效果,就像我推动一个新的视图控制器一样。
有人知道如何将旧内容从屏幕上的旧内容中删除,将新内容放到屏幕上以获取整个表格吗?
答案 0 :(得分:13)
根据您拥有的部分数量,您可以使用- (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];
}
答案 1 :(得分:0)
简单动画
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
}
}