这类似于询问如何在未经确认的情况下滑动/删除的问题:
UITableView swipe to delete with no confirmation
我的tableview包含设置了UITableViewCellEditingStyleDelete的单元格。当tableview处于编辑模式时,单元格会显示一个内部带有“ - ”的红色圆圈图标。要删除单元格,用户点击红色圆圈,会出现删除按钮。然后,用户必须点按“删除”,触发tableView:commitEditingStyle:forRowAtIndexPath:
。
我的一些行支持UITableViewCellEditingStyleInsert。在这种情况下,单元格显示一个绿色圆圈图标,里面带有“+”。点击圈子会立即调用tableView:commitEditingStyle:forRowAtIndexPath:
。
我想在用户点按初始红圈图标时立即调用tableView:commitEditingStyle:forRowAtIndexPath:
。也就是说,没有删除按钮步骤。
有什么想法吗?
有没有办法提供从左侧滑入的自定义编辑控件,如删除/插入?如果是这样,也许我可以使用这种机制?
答案 0 :(得分:3)
我想出了一个解决方案,但它有被拒绝的风险。 (按类名检查未记录的类是否构成违反sdk协议的行为?)
也许有人可以改进这个?
基本上,在我的自定义UITableViewCell的上下文中,我注意要添加的删除按钮(不是UIButton),然后调用它的UIControlEventTouchUpInside动作。有一点延迟,动画就可以解决了:
- (void) addSubview:(UIView *)view
{
if ([NSStringFromClass([view class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"])
{
UIControl* c = (UIControl*)view;
NSArray* actions = [c actionsForTarget: self forControlEvent: UIControlEventTouchUpInside];
[self performSelector: NSSelectorFromString( [actions lastObject] ) withObject: view afterDelay: .25];
return;
}
[super addSubview: view];
}