无法更改单元格的行高 - 有 2 个原型单元格

Posted

技术标签:

【中文标题】无法更改单元格的行高 - 有 2 个原型单元格【英文标题】:Can't Change Row Heights of Cells - Have 2 Prototype Cells 【发布时间】:2016-04-07 20:16:09 【问题描述】:

我有一个 TableView,里面有 2 个原型单元格。我希望其中一个是静态的(称为标题单元格),另一个是动态的(称为描述单元格)。

所以我将 TableView 单元格设置为动态原型,将原型单元格设置为 2)。 我还设置了 TableView 并增加了原型单元格;并放置虚拟数据以查看它们的工作情况。

但是,无论我做了什么,我都无法调整标题单元格的大小。

首先,在 Storyboard 中,我尝试更改标题单元格的行高(并勾选了“自定义”)。似乎改变了情节提要中行的高度;事实上它不会在构建之后。

其次,这个宽度和高度位似乎被禁用了。

Content ViewHeader Cell 下也是一样的。宽度和高度调整部分被禁用。

顺便说一句,Description Cell 的一切都是一样的。我尝试将它添加一个行高,它似乎在情节提要中发生了变化,但是在构建之后,没有运气。它只是自己行事。

我还应该强调它为Description Cell 提供了更多空间,我返回cell.textLabel?.text = "BlaBla"(因此它必须自己编写文本);但是对于我在情节提要上拖放的另一个单元格,它只会挤压高度。

我可能做错了什么?你觉得我错过了什么?


编辑:(我在顶部有一个导航栏)

模拟器上的样子:

它在 Storyboard 上的外观:


如您所见,它缩小了Header Cell(因此搞砸了设计),并随机增加了Description Cell 的高度。

如果我可以用heightForRowAtIndexPath 做到这一点,我应该如何使用这种方法为 2 个原型单元格提供不同的高度。 (我想让Header Cell 是静态行高,但Description - Dynamic,或者至少不是相同的高度)

【问题讨论】:

【参考方案1】:

您将在表格视图的委托中实现- tableView:heightForRowAtIndexPath: 并返回您想要的每一行的高度。

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
    if indexPath.row == 0 
        return 100
    
    return 44

【讨论】:

当我有多个原型单元时如何使用它?例如,return 44 不会影响两个单元格吗? @senty 你应该同时发送heightForHeaderInSectionheightForRowAtIndexPath @senty 没有。您只需要两次退货。我已经更新了答案以显示可能的样子。 哦,完全错过了heightForHeaderInSection。非常感谢!

以上是关于无法更改单元格的行高 - 有 2 个原型单元格的主要内容,如果未能解决你的问题,请参考以下文章

Excel设置单元格的宽度、高度

怎么查看excel表格有几个

怎样根据内容自动调整excel表格的行高列宽?

如何更改自定义单元格的 UILabel 文本?

DataGridView使用技巧五:自动设定列宽和行高

excel如何批量设置单元格宽度和高度?