编辑 TableView 时自定义 TableCell 中没有缩进
Posted
技术标签:
【中文标题】编辑 TableView 时自定义 TableCell 中没有缩进【英文标题】:No Indentation in Custom TableCell while Editing TableView 【发布时间】:2011-06-23 17:39:10 【问题描述】:我今天花了很多时间试图弄清楚如何让我的自定义表格单元格(使用 XIB 构建)在编辑模式下停止缩进。
我到处查看,例如:Prevent indentation of UITableViewCell (contentView) while editing 和 How can I change the amount of indentation on my custom UITableViewCell while editing?,但似乎遇到了与 OP 遇到的与细胞跳来跳去的问题相同的问题。
有没有人找到更好的方法来解决这个问题?
基本上我有一个 CustomTableCell,当我在该单元格上进入编辑模式时,我希望该单元格保持在原位,没有缩进。
感谢您的帮助!
【问题讨论】:
【参考方案1】:您应该使用 tableView:shouldIndentWhileEditingRowAtIndexPath: 委托方法来返回 No。如果这不起作用,请转到 .xib 并打开实用程序视图(右侧的那个)。从那里禁用文件检查器选项卡中的“使用自动布局”并在属性检查器中禁用“编辑时缩进”。
【讨论】:
【参考方案2】:您应该使用委托方法tableView:shouldIndentWhileEditingRowAtIndexPath:
并返回false
。
来自文档:“当表格视图处于编辑模式时,询问代理指定行的背景是否应该缩进。”
【讨论】:
这应该是公认的答案,因为它不是任何形式的 hack,而是正确的方法【参考方案3】:有趣。我设法使用 hack 使链接中发布的解决方案工作:在 layoutSubviews 我刚刚做了 self.indentationWidth = 0.0001; :.不是最干净的解决方案,但它有效。
【讨论】:
布局子视图在哪里?是细胞吗?或单元格背景视图或什么?谢谢!【参考方案4】:我发现,如果您将自定义单元格的子视图放在大约 300 到 320 点宽的 UIView 上,然后将所述子视图添加到单元格的内容视图中,它不会在触发编辑模式时移动子视图。
【讨论】:
有趣。我设法使用 hack 使链接中发布的解决方案工作:在 layoutSubviews 我刚刚做了 self.indentationWidth = 0.0001; :\。不是最干净的解决方案,但它有效。以上是关于编辑 TableView 时自定义 TableCell 中没有缩进的主要内容,如果未能解决你的问题,请参考以下文章
TableView 滚动时自定义 UITableViewCell 发生变化
编辑单元格时自定义 UITableViewCell 反向缩进
实现 willTransitionToState: 时自定义 UITableViewCell 不显示编辑控件