gpt4 book ai didi

ios - 在 Swift 中设置 tableView header 的高度

转载 作者:IT王子 更新时间:2023-10-29 05:09:46 24 4
gpt4 key购买 nike

我正在尝试在 TableView Controller 中设置位于我的原型(prototype)单元格顶部的 View 的高度。我使用 IB 来设置它的高度(尺寸检查器)并将它设置为 61,就像这样(绿色 View 是“标题” View ):

header view

但是每当我运行该应用程序时,它的高度最终都会变为 568.0。我的 TableView Controller 中的 View 有一个名为 testUIView 的 IBOutlet,我这样做:println("testUIView Height->\(testUIView.frame.height)")并且在运行时确实最终成为 568.0

这是显示其运行时高度的屏幕截图:

enter image description here

所以我的问题是:如何设置 View 的高度,使其在运行时为 61,使其看起来确实像我的第一个屏幕截图(按大小)?

我试图在 override func viewWillLayoutSubviews() 中设置它的高度属性,但它不允许我为高度赋值 testUIView.frame.height = CGFloat(61.0).

感谢任何帮助!提前致谢!

干杯!

最佳答案

这是一个使用节标题 View 而不是实际表标题 View 的解决方案:


如果您想为 UITableView 使用 header ,您可以在 Interface Builder 中设计另一个原型(prototype)单元格,基于 UITableViewCell 创建一个自定义类,然后在类检查器上将其分配给 Interface Builder 中的原型(prototype)单元格。

然后在你的 Controller 中你将要使用

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?

在该函数中,您实际上将从表格 View 中创建一个可重用的单元格,但将其转换为您为标题创建的自定义单元格。您将可以像普通 UITableViewCell 一样访问它的所有属性,然后您只需返回单元格的 View

return cell.contentView

另一种方法是

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 61.0
}

这个是不言自明的。

swift 3.0.1

public override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 61.0
}

关于ios - 在 Swift 中设置 tableView header 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31665927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com