gpt4 book ai didi

ios - 无法更改 UITableView 中节标题的文本属性

转载 作者:搜寻专家 更新时间:2023-11-01 05:57:26 25 4
gpt4 key购买 nike

我很确定我已经尝试覆盖处理 UITableViewHeaderFooterView 的每个函数,以更改 tableView 部分中标题的文本、字体和文本颜色。

我尝试使用从另一个答案中找到的这段代码:

override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
let header: UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView
header.contentView.backgroundColor = UIColor(red: 0/255, green: 181/255, blue: 229/255, alpha: 1.0)
header.textLabel!.textColor = UIColor.whiteColor()
header.alpha = 0.5
header.textLabel!.text = "foobar"
}

这成功地改变了 header.contentView 的背景颜色,但是一旦我添加了一行代码来改变 textLabel 的文本,任何东西(包括背景颜色)都不会显示.

我可以使用 titleForHeaderInSection 更改文本,但 willDisplayHeaderView 中的代码不会影响文本属性。重写 viewForHeaderInSection 似乎也无济于事。有人请帮忙!

最佳答案

在尝试在那里设置任何东西之前,请确保您实际查找的属性具有 setter 。

问题

您只设置了 contentView,因为它可以与 tintColor 一起设置,但其他属性用 get 标记,所以您可以获取该值,但您没有设置它的权限。

From Docs

public var tintColor: UIColor!

public var textLabel: UILabel? { get }
public var detailTextLabel: UILabel? { get } // only supported for headers in grouped style

public var contentView: UIView { get }
public var backgroundView: UIView?

public var reuseIdentifier: String? { get }

解决方案

有一个解决方案可以使用 UIAppearance Protocol 实现

To customize the appearances for instances of a class when contained within an instance of a container class, or instances in a hierarchy, use appearanceWhenContainedIn: to get the appearance proxy for the class. For example, to modify the appearance of bar buttons, based on the object that contains the navigation bar:

我们的案例

UILabel.appearanceWhenContainedInInstancesOfClasses([UITableViewHeaderFooterView.self]).textColor = UIColor.whiteColor()

More Details

解决方案2

您还可以创建自己的 UIView 子类并将其显示在

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

这样你就可以随心所欲地修改,而不是试图自定义一些在自定义方面非常有限的东西

关于ios - 无法更改 UITableView 中节标题的文本属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35879727/

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