如何在编辑模式下确定 UITableViewCell 的删除按钮的原点 (x,y)?

Posted

技术标签:

【中文标题】如何在编辑模式下确定 UITableViewCell 的删除按钮的原点 (x,y)?【英文标题】:How do I determine the origin (x,y) of the Delete button for a UITableViewCell during editing mode? 【发布时间】:2011-12-05 20:04:31 【问题描述】:

我有一个使用标准删除编辑样式的 UITableView。我想在显示“删除”按钮时调整单元格中的文本大小,使其可见。

如何确定标准删除按钮的原点,以便为调整大小的文本计算适当的帧大小?

编辑: 这是一个包含 UILabel 的子类 UITableViewCell。标签中的文本量因行而异,因此每行都会计算单元格的高度,并在创建单元格时相应地调整 UILabel 框架。

我已尝试按照 cmets 中的说明调整单元格中 UILabel 的 autoresizingMask,当编辑(删除)模式处于活动状态时,它对标签中文本的布局没有影响。

编辑#2: 根据要求,这里有一些屏幕截图。

a) 这是带有 UILabel 控件的表格单元格。每个单元格的高度是根据文本量动态计算的。

b) 当编辑模式启动时,会显示编辑控件(红色圆圈),将文本从屏幕右侧推开。

c) 然后当一个编辑控件被选中并显示删除按钮时,它会覆盖文本。

目标是让文本区域(UILabel 框架)在编辑开始“b)”时减小其宽度并增加高度以容纳所有文本。当删除按钮显示“c)”时,文本高度将保持不变,不适合的文本可以被截断并显示省略号“...”。

【问题讨论】:

How do I determine the size of the editing control in a UITableViewCell delete style? 的可能重复项 编辑控件(左侧红色圆圈)与删除按钮(右侧)不同。这是我发布的另一个问题。 您是在使用UITableViewCelltextLabeldetailTextLabel 属性,还是在您自己的单元格子视图中显示文本? 它是具有 UILabel 的 UITableViewCell 的子类。 【参考方案1】:

您不必这样做 - 如果您已将子视图添加到单元格的内容视图并适当地设置它们的大小调整掩码,这将自动为您发生。

通过调整掩码大小,我的意思是在界面生成器的大小检查器中可见的选项。例如,如果您希望单元格与左右边距保持固定距离,但宽度会增加或缩小,那么您可以更改边距和宽度条,以便预览显示标签的增长和缩小,而不是保持大小相同但四处移动。我不记得具体的外观,我现在不在我的 Mac 上,抱歉,但应该很明显。

【讨论】:

单元格是从 nib 文件创建的,如上面问题的编辑所示,编辑控件被切断。请详细说明“设置他们的调整大小蒙版......”是什么意思。谢谢 大概他的意思是autoresizingMask 设置已编辑的问题。更改 autoresizingMask 对编辑模式下标签中的文本没有影响。 所以,澄清一下,您正在为 heightForRow 中的一个相当大的标签手动设置框架,并且您希望标签调整大小(并且可能是单元格的高度增加?)所以您仍然可以容纳全文?您能否在问题中包含一些屏幕截图? Edit#2 中添加的其他信息

以上是关于如何在编辑模式下确定 UITableViewCell 的删除按钮的原点 (x,y)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vim/Vi 中快速查找和替换文本内容

在Linux系统下Vi命令模式和编辑模式如何切换?

如何在独立模式或编辑器模式下退出

如何确定是不是启用了“调试模式”

Datagridview:如何在编辑模式下设置单元格?

如何在确定模式下使用 Android ProgressBar?