UITableView seperatorInsets 不准确或者我在寻找其他东西?
UITableView seperatorInsets are not accurate or am I looking for something else?
这似乎是一个非常基本的操作,却变得过于复杂。
我有一个 uitable 视图,其中包含我正在尝试使用 heightForRowAtIndexPath 调整大小的单元格。我需要单元格根据它们包含的文本调整大小,所以我使用属性字符串 boundingRectWithSize,传入 table 的宽度和 window 的高度,并使用出列的正确字体单元格和 UsesLineFragmentOrigin.
在很多情况下,这会截断最后一行文本,我认为这是由于单元格的内容视图和 table视图边缘之间存在偏移,因此当我给 boundingRectWithSize table 它计算错了高度。
当我打开视图调试时,我什至可以看到这个偏差"show view frames."内容视图的左右两侧有相等的偏移量。
但是,我不知道如何在方法 heightForRowAtIndexPath 中访问此偏移量。从视图调试中,我知道 table 和 contentview 的宽度之间的差异是 40,但我不想对该值进行硬编码。我对它所在位置的最佳猜测是 UITableView 的 属性,称为 "separatorInset",它是一个 edgeInset,它具有 "left" "right" "up" 和 "down"方面。但是,当我检查 属性 时,除了 "left" 是 20.
之外所有维度都是零
因为我知道差异是 40,如果我将宽度减去 "left"*2 传递给 boundingRectWithSize,那么我的所有测试字符串的大小都是正确的。
然而,这让我很困扰,因为我希望通过的是宽度 - "left" - "right" 并且仅使用 left*2 或多或少相当于硬编码 40.
我是否错过了真正的 属性,它会告诉我左右偏移是什么,或者 "separatorInsets" 有问题,或者 "left" "right" "up" "down" 表示明显以外的东西?
谢谢。
我觉得很愚蠢,但我要找的术语是 "margin." 我一直在找一个叫做偏移量的东西,但在通用术语中我想到的是边距。
一开始我可能考虑过这个,但后来在查看 UITableView 的文档时,我没有看到任何 属性 中有那个词。
但是,UIView 当然有一个名为 "layoutMargins" 的 属性,但我找不到。
在考虑是 tableview 还是 tableviewcell 甚至是 cell 的 contentview 是否可以控制这个问题后转了几圈,我相信很容易混淆所以对于任何想知道的人来说,这种事情是由 属性 "layoutMargins" 在 UITableView 上。
但是,我仍然有点困惑,因为 UITableViewCell 有一个 属性(也来自 UIView),称为 preservesSuperviewLayoutMargins,它应该默认为 NO,在这种情况下,单元格的布局应该覆盖单元格的布局表格视图。
似乎对于UITableViewCell,这个默认为YES。我想有些事情要记住。
这似乎是一个非常基本的操作,却变得过于复杂。
我有一个 uitable 视图,其中包含我正在尝试使用 heightForRowAtIndexPath 调整大小的单元格。我需要单元格根据它们包含的文本调整大小,所以我使用属性字符串 boundingRectWithSize,传入 table 的宽度和 window 的高度,并使用出列的正确字体单元格和 UsesLineFragmentOrigin.
在很多情况下,这会截断最后一行文本,我认为这是由于单元格的内容视图和 table视图边缘之间存在偏移,因此当我给 boundingRectWithSize table 它计算错了高度。
当我打开视图调试时,我什至可以看到这个偏差"show view frames."内容视图的左右两侧有相等的偏移量。
但是,我不知道如何在方法 heightForRowAtIndexPath 中访问此偏移量。从视图调试中,我知道 table 和 contentview 的宽度之间的差异是 40,但我不想对该值进行硬编码。我对它所在位置的最佳猜测是 UITableView 的 属性,称为 "separatorInset",它是一个 edgeInset,它具有 "left" "right" "up" 和 "down"方面。但是,当我检查 属性 时,除了 "left" 是 20.
之外所有维度都是零因为我知道差异是 40,如果我将宽度减去 "left"*2 传递给 boundingRectWithSize,那么我的所有测试字符串的大小都是正确的。
然而,这让我很困扰,因为我希望通过的是宽度 - "left" - "right" 并且仅使用 left*2 或多或少相当于硬编码 40.
我是否错过了真正的 属性,它会告诉我左右偏移是什么,或者 "separatorInsets" 有问题,或者 "left" "right" "up" "down" 表示明显以外的东西? 谢谢。
我觉得很愚蠢,但我要找的术语是 "margin." 我一直在找一个叫做偏移量的东西,但在通用术语中我想到的是边距。
一开始我可能考虑过这个,但后来在查看 UITableView 的文档时,我没有看到任何 属性 中有那个词。
但是,UIView 当然有一个名为 "layoutMargins" 的 属性,但我找不到。
在考虑是 tableview 还是 tableviewcell 甚至是 cell 的 contentview 是否可以控制这个问题后转了几圈,我相信很容易混淆所以对于任何想知道的人来说,这种事情是由 属性 "layoutMargins" 在 UITableView 上。
但是,我仍然有点困惑,因为 UITableViewCell 有一个 属性(也来自 UIView),称为 preservesSuperviewLayoutMargins,它应该默认为 NO,在这种情况下,单元格的布局应该覆盖单元格的布局表格视图。
似乎对于UITableViewCell,这个默认为YES。我想有些事情要记住。