Iphone 如何更改UITableView拖动控件和行为?

Iphone 如何更改UITableView拖动控件和行为?,iphone,uitableview,Iphone,Uitableview,我试图在编辑模式下使用UITableView提供的拖动功能来重新排列cell.contentView中的一些自定义视图。在长按单元格后,我成功地打开了编辑模式,并在重新排序后关闭了编辑模式 以下是我如何设置的图片: 我遇到的问题是: contentView缩进,无论我在编辑时设置了什么 我想去掉删除控件和拖动控件 整个contentView应该是一个拖动区域,而不仅仅是一个小的拖动控制区域 如果您能帮忙,我们将不胜感激。谢谢 如果启用了行重新排序,则无法摆脱拖动控件。API不允许对行重新排序进行

我试图在编辑模式下使用UITableView提供的拖动功能来重新排列cell.contentView中的一些自定义视图。在长按单元格后,我成功地打开了编辑模式,并在重新排序后关闭了编辑模式

以下是我如何设置的图片:

我遇到的问题是:

  • contentView缩进,无论我在编辑时设置了什么
  • 我想去掉删除控件和拖动控件
  • 整个contentView应该是一个拖动区域,而不仅仅是一个小的拖动控制区域
    如果您能帮忙,我们将不胜感激。谢谢

    如果启用了行重新排序,则无法摆脱拖动控件。API不允许对行重新排序进行任何自定义。唯一的解决方案是您自己的自定义表类型视图


    您可以去掉delete控件。只需从
    表格视图中返回
    UITableViewCellEditingStyleNone
    :editingStyleForRowAtIndexPath:
    委托方法。

    是的,您可以自定义拖动控件的外观。尝试覆盖
    布局子视图
    。在该方法中,检查编辑状态并相应地绘制/定位图元

    你能分享我将如何做这件事的更多细节吗?这需要深入研究单元格的私有视图结构。任何这样的尝试都是脆弱的,并且有潜在的危险。@maddy没有必要。在layoutSubviews中,您可以插入覆盖拖动控件的视图。IIRC我通过在子视图上迭代、按类名选择重新排序控件、设置
    hidden=YES
    alpha=0
    (我忘了)并将触摸事件转发给它来实现这一点,以便您可以拖动单元格中的任何位置。可能会突破操作系统版本,所以请记住在早期Beta上测试它,以便有时间修复它!像Mundi建议的那样覆盖LayoutSubview对更改重新排序的拖动控件无效吗?如何实现自定义表类型视图?我不建议深入研究
    UITableViewCell
    的私有子视图布局。编写您自己的表视图是一个巨大的主题,在SO帖子中无法回答。当您说“编写您自己的表视图”时,您的意思是完全重新实现UITableView的功能吗?是的,这就是我的意思。当然这不是一件容易的事,但它会让你完全控制。