答案 0 :(得分:5)
如何分隔标题(使高度变大)并更改文本的颜色?
您需要具有一个带有标签的自定义视图,并将其返回到UITableView
的{{1}}的委托方法中。
viewForHeaderInSection
参考:
https://www.hackingwithswift.com/example-code/uikit/how-to-add-a-section-header-to-a-table-view
https://developer.apple.com/documentation/uikit/uitableview/1614965-headerview
编辑:
这是实现此目标的方法。基本上,我在上面提到的委托方法中需要一个自定义视图。如果您之前已经成功在func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
中创建了自定义UITableViewCell
,那么这对您来说应该是小菜一碟。
您声明一个容器视图,然后将子视图添加到该容器中(在您的情况下为cellForRow
)。我总是使用约束,就像这样:
UILabel
然后在func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
// Let's make the even numbers sections a red background.
// Blue background for odd numbers
let container = UIView()
container.backgroundColor = section % 2 == 0 ? .red : .blue
let titleForHeaderLabel = UILabel()
titleForHeaderLabel.backgroundColor = .white
titleForHeaderLabel.text = "HEADER SECTION: \(section)"
container.addSubview(titleForHeaderLabel)
titleForHeaderLabel.translatesAutoresizingMaskIntoConstraints = false
titleForHeaderLabel.topAnchor.constraint(equalTo: container.topAnchor, constant: 20).isActive = true
titleForHeaderLabel.bottomAnchor.constraint(equalTo: container.bottomAnchor, constant: -20.0).isActive = true
titleForHeaderLabel.leadingAnchor.constraint(equalTo: container.leadingAnchor, constant: 20.0).isActive = true
titleForHeaderLabel.trailingAnchor.constraint(equalTo: container.trailingAnchor, constant: -20.0).isActive = true
return container
}
委托方法中为您的部分提供高度,如下所示:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
输出:
容易,对吧? :)我希望这会有所帮助!