如何在TableView XCode中调整标题的大小并更改其颜色

时间:2018-12-04 09:16:16

标签: ios swift

我在情节提要板上使用静态Tableview 各个标题的标题

enter image description here

标题文本的颜色和大小是静态的,我无法更改 它会导致标题和黑色文字非常狭窄。

如何分隔标题(使高度变大)并更改文本的颜色?

enter image description here

1 个答案:

答案 0 :(得分:5)

  

如何分隔标题(使高度变大)并更改文本的颜色?

您需要具有一个带有标签的自定义视图,并将其返回到UITableView的{​​{1}}的委托方法中。

viewForHeaderInSection

参考:

  1. https://www.hackingwithswift.com/example-code/uikit/how-to-add-a-section-header-to-a-table-view

  2. 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

输出:

enter image description here

容易,对吧? :)我希望这会有所帮助!