有没有办法动画删除UITableView单元附件?
我目前正在展示UITableViewCellAccessoryDisclosureIndicator,但我想在所有可见的表格单元格上使用UISwitch交换披露指示器。
我尝试过这样的事情:
[UIView animateWithDuration:0.3
animations:^{
for (SwitchTableViewCell *cell in self.tableView.visibleCells)
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
}];
......但不幸的是,这没有任何影响。公开指示符突然消失,contentView宽度一步跳跃,而不是平滑过渡。
答案 0 :(得分:3)
accessoryType不是可动画的属性。根据您的具体情况,有两种方法可以做到这一点。最简单的方法仅适用于因进入编辑状态而将附件更改为UISwitch的情况。在这种情况下,只需在cell.editingAccessoryType = theSwitch;
方法中使用tableView:cellForRowAtIndexPath:
即可。然后,当进入编辑模式时,表格视图将自动淡入/淡出。
如果您在编辑模式之外执行此操作,则以下代码将执行您想要的操作:
[UIView animateWithDuration:0.3 animations:^{
for(SwitchTableViewCell *cell in self.tableView.visibleCells) {
[[cell valueForKey:@"_accessoryView"] setAlpha:0.0];
}
} completion:^(BOOL done) {
for(SwitchTableViewCell *cell in self.tableView.visibleCells) {
cell.accessoryView = theSwitch;
}
}];
但是,我不知道这段代码是否会进入应用程序商店,因为它使用隐藏属性_accessoryView。