无法更改单元格的行高 - 有 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 View
在Header 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 你应该同时发送heightForHeaderInSection
和heightForRowAtIndexPath
@senty 没有。您只需要两次退货。我已经更新了答案以显示可能的样子。
哦,完全错过了heightForHeaderInSection
。非常感谢!以上是关于无法更改单元格的行高 - 有 2 个原型单元格的主要内容,如果未能解决你的问题,请参考以下文章