UITableViewCell重新排序控件,没有删除按钮,以及滑动到删除

时间:2013-12-27 21:05:19

标签: ios uitableview

我有一个UITableView,我希望始终显示重新排序控件,从不显示小删除圆圈图标,并始终允许滑动删除。这可能吗?

到目前为止,我只发现了两个选项:

  • 只允许滑动删除(UITableViewCellEditingStyleDelete),
  • 仅允许重新排序控件(setEditing:YES,UITableViewCellEditingStyleNone)。

感谢您阅读

3 个答案:

答案 0 :(得分:3)

为此,我将两个开源项目合并到:

https://github.com/adamraudonis/UITableViewCell-Swipe-for-Options

希望有所帮助!目前,您可以通过长按TableViewCell中的任何位置进行重新排序,然后滑动以删除而不显示红色圆圈。

答案 1 :(得分:2)

显然UITableView有一个private api method可以做到这一点:

Reorder with swipe-to-delete demo

if ([self.tableView respondsToSelector:@selector(_setAllowsReorderingWhenNotEditing:)]) {
    [self.tableView _setAllowsReorderingWhenNotEditing:YES];
} else {
    // do not ignore this branch 
}

适用于iOS 8,9和当前的测试版。但是,您有责任检查方法可用性以避免崩溃。仍然会比使用一些重载的第三方库(在未来的iOS版本中很可能会破坏)更好。

答案 2 :(得分:1)

我已经针对iOS 8再次检查了这个问题,并且UITableView API仍然不支持刷卡删除和重新排序控制。因此,您需要添加非标准滑动和重新排序工具。

80%完成了实施,其中包含两个必需的功能:

https://github.com/simonnickel/SNLInteractionTableView

这里所需要的只是将UIPableView单元格向左拖动来替换滑动逻辑。并使用删除按钮

替换隐藏/显示的图像