第一次使用tableView.reloadRows是不同的

时间:2017-03-02 23:05:42

标签: swift uitableview animation

我的单元格存储了一个项目,并且每当点击时该项目的数量都会增加。要删除数量,可以将单元格平移到左侧,数量为零。

每当单元格中有amount > 0的项目时,单元格左侧会显示蓝线(CAShapelayer)。

要将金额设定回0,需要调用一个函数:

func deleteItem(_ index: IndexPath) {
    // Amount is set to 0

    tableView.reloadRows(at: [index], with: .none)
}

重新加载单元格时,蓝线将移出单元格。并且由于蓝线是CAShapeLayer,因此它的隐式动画将启动并激活出单元格的蓝线。

隐式动画:
animating

问题:
但是,第一次(加载视图后)调用此函数时,蓝线(CAShapeLayer)不会执行隐式动画。

没有动画:
No animation

如果我使用tableView.reloadData()我不会遇到此问题,但即使我正在平移其他单元格导致其重置,它也会重新加载整个表格,所以我可以& #39; t使用tableView.reloadData()

问题:
为什么只是在加载视图后第一次蓝线的隐式动画(`CAShapeLayer)不起作用?如何确保此隐式动画始终有效?

0 个答案:

没有答案