【问题标题】:UITableView disable "delete" confirmationUITableView 禁用“删除”确认
【发布时间】:2011-04-02 21:00:28
【问题描述】:

这类似于询问如何在未确认的情况下滑动/删除的问题:

UITableView swipe to delete with no confirmation

我的 tableview 有设置了 UITableViewCellEditingStyleDelete 的单元格。当 tableview 处于编辑模式时,单元格显示一个红色的圆圈图标,里面有一个“-”。要删除单元格,用户点击红色圆圈,然后会出现删除按钮。然后用户必须点击删除触发tableView:commitEditingStyle:forRowAtIndexPath:

我的一些行支持 UITableViewCellEditingStyleInsert。在这种情况下,单元格显示一个绿色圆圈图标,里面有一个“+”。点击圆圈会立即调用tableView:commitEditingStyle:forRowAtIndexPath:

我希望在用户点击初始红圈图标时立即调用tableView:commitEditingStyle:forRowAtIndexPath:。也就是说,没有删除按钮步骤。

有什么想法吗?

有没有办法提供从左侧滑入的自定义编辑控件,如删除/插入?如果是这样,也许我可以使用这种机制?

【问题讨论】:

    标签: iphone ios uitableview


    【解决方案1】:

    我想出了一个解决方案,但它有被拒绝的风险。 (按类名检查未记录的类是否构成违反 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];
    }
    

    【讨论】:

    • 我很想知道您提交时是否被拒绝。
    • 是的,一旦它被接受/拒绝,我会在这里发布。我可能会尝试重新修改它以删除 UITableViewCellDeleteConfirmationControl 类名 - 只是还没有决定最好的方法。
    • 能否告诉我们它是被接受还是被拒绝?
    • 未被拒绝。但是它在 iOS7 中中断(不足为奇)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2011-10-06
    相关资源
    最近更新 更多