微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 如何在tableview xcode中调整大小和更改标题的颜色

我在故事板上使用静态Tableview
这是各部分的头条新闻

enter image description here

标题文字颜色和大小是一个静态的东西,我不能改变它
它导致非常狭窄的标题和黑色文本.

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

enter image description here

解决方法

how can i space out the headlines (make the height a bit bigger) and change the color of the text ?

您需要具有标签自定义视图,并将其返回到UITableView的viewForHeaderInSection的委托方法.

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

参考:

> 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

编辑:

以下是如何实现这一目标.基本上,您需要在我上面提到的委托方法中使用自定义视图.如果你以前在cellForRow中成功制作了一个自定义UITableViewCell,那么这个对你来说应该是小菜一碟.

您声明了一个容器视图,然后在该容器中添加子视图(在您的情况下为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委托方法,如下:

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

输出

enter image description here

容易,对吗? :) 我希望这有帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐