iOS - 使 UITableView 与自定义单元格在按钮单击时可编辑

Posted

技术标签:

【中文标题】iOS - 使 UITableView 与自定义单元格在按钮单击时可编辑【英文标题】:iOS - Make UITableView with custom cells editable on button click 【发布时间】:2012-04-02 04:25:33 【问题描述】:

我想在我的 UITableView 标题旁边添加一个小按钮,当按下该按钮时,我的表格视图单元格将变为可编辑(为详细标签设置 UITextField),我可以编辑该按钮,然后再次单击该按钮并恢复并保存。

或者在页脚添加一个按钮,只显示保存并让单元格始终可编辑。

我该怎么做?

【问题讨论】:

【参考方案1】:

子类UITableViewCell,覆盖layoutSubviews以准备正常和编辑模式的不同呈现(@property(nonatomic, getter=isEditing) BOOL editing决定哪个)。或者您可以覆盖它的 setEditing:animated,但从未尝试过。

然后按钮应该调用类似的东西

[mytable setEditing:YES animated:YES];

当您调用此方法并将editing 的值设置为YES 时,表格视图会通过在每个可见的UITableViewCell 对象上调用setEditing:animated: 来进入编辑模式。在编辑设置为 NO 的情况下调用此方法会关闭编辑模式。在编辑模式下,表格的单元格可能会在每个单元格的左侧显示插入或删除控件,在右侧显示重新排序控件,具体取决于单元格的配置方式。 (详见 UITableViewCell 类参考。)表格视图的数据源可以通过实现 tableView:canEditRowAtIndexPath: 选择性地将单元格排除在编辑模式之外。

【讨论】:

手头有任何用户编程指南可以深入解释这一点吗?还有关于如何进行按钮交易的任何想法? @8vius 在这里查看答案。不完全是您想要的,但总体思路应该很清楚:***.com/questions/742829/… @8vius 按钮是什么?如果你不想打电话,你不必打电话给setEditing:NO,你可以让表格处于编辑模式。实际上,您可以从一开始就在编辑模式中显示它,并且永远不要关闭它。 是的,但我的意思是如何在 UITableView 标题旁边添加一个按钮? @8vius 你的意思是在左边/仪式一侧的桌子顶部吗?前者使用表格的tableHeaderView 属性很容易,后者更复杂,因为部分标题会自动更改宽度以匹配表格宽度,解决方案是使用viewForHeaderInSection,创建自己的标题视图并添加按钮作为子视图的标题框架。表格的clipSubviews 必须是NO 以使子视图在表格框架之外可见。或者您可以使用标题的UIViewAutoresizing

以上是关于iOS - 使 UITableView 与自定义单元格在按钮单击时可编辑的主要内容,如果未能解决你的问题,请参考以下文章

iPhone-如何将 Storyboard 与自定义 UITableView 单元格和 CellWithIdentifier 一起使用

didSelectRowAtIndexPath 与自定义单元格

如何使 C++ 中的 for each 循环函数与自定义类一起使用

使用以编程方式创建的自定义 UITableViewController 管理 UITableView

iOS - 将 AFNetworking 与自定义 NSURLProtocol 类一起使用

UITextView 委托行为与自定义 iOS 键盘 (SwiftKey) 不同