【问题标题】:UITableViewCell: Custom Row Height for prototype cellUITableViewCell:原型单元格的自定义行高
【发布时间】:2012-08-12 22:19:46
【问题描述】:

在我的故事板文件中,我正在 UITableView 中设计多个原型单元。每个单元格都有自己唯一的单元格标识符。

根据部分和行,我将方法中的一个原型单元格出列 - tableView:cellForRowAtIndexPath:

对于大多数原型单元格,我没有更改行高。在我的故事板上,它们的高度似乎由 UITableView 的“大小检查器”下的属性“行高”决定。

对于一个原型单元格,我通过特定 UITableViewCell 的“大小检查器”下的属性“行高”更改了高度。 “自定义”复选框也被选中。

在我的故事板上,这似乎运作良好。但是在运行时,当我的单元格被出列并添加到 TableView 时,所有单元格都会获得默认的行高。

现在,我知道其他帖子中提到的 tableView:heightForRowAtIndexPath: 方法,但使用起来似乎有点奇怪,因为我已经在我的故事板中设置了自定义行高。

有人知道为什么这个属性不起作用吗?是否可以修改此属性以在不同情况下使用?

谢谢

【问题讨论】:

    标签: xcode uitableview row-height


    【解决方案1】:

    如果您想在 Xcode 5 中使用 Interface Builder 来更改表格视图中的行高,而无需代码,您可以在两个地方进行:

    • 选择表格视图,显示尺寸检查器并输入 行高,在表格视图大小部分。

    • 选择原型单元格,显示 Size 检查器,检查 Table View Size 部分中的 Custom 并在关联中键入行高文本字段。

    可能是您使用的是第二种方法吗?尝试使用第一种方法设置表格视图中所有行的默认高度,第二种方法告诉 Interface Builder 异常。

    【讨论】:

    • 行高可以在很多地方设置。你想在哪里设置它?
    • 我的意思是在 Storyboard 中,当我使用动态原型时,原型单元格的自定义高度不起作用。据我所知,这是众所周知的。
    【解决方案2】:

    heightForRowAtIndexPath 被调用(对于表格的每一行)显示单元格之前,即在调用cellForRowAtIndexPath 之前。这是计算底层滚动视图、滚动指示器等的布局所必需的。

    【讨论】:

    • 嗨 Martin,感谢您阐明 heightForRowAtIndexPath 方法。但这并不能解释为什么这个属性在不被使用的情况下仍然可用。
    • @Brabbeldas:嗨! height 属性实际上是用来创建单元格的。我刚刚验证了dequeueReusableCellWithIdentifier 返回的单元格具有在大小检查器中指定的高度。但是 tableview 不使用单元格的高度来定位单元格。它仅使用来自heightForRowAtIndexPath 的值。
    • 你的意思是该属性只在设计时使用?
    • 不,单元格确实具有您指定的高度。但是单元格的高度不用于定位单元格。因此,如果单元格的高度大于heightForRowAtIndexPath 返回的高度,则该单元格将与下一个单元格重叠。
    • 现在这是一个明确的答案!我现在明白你在说什么了! ..我应该能够在文档中找到这个吗?
    猜你喜欢
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多