iOS:我的 TableView header 的背景颜色在 iOS13 中不再改变
iOS: the background color of the header of my TableView is not changing anymore in iOS13
我的 TableView 的 header 在 iOS13 中显示不佳。不管我放什么颜色,现在总是显示浅灰色...
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{ //Section color & style
UITableViewHeaderFooterView *v = (UITableViewHeaderFooterView *)view;
v.backgroundView.alpha = 1;
v.textLabel.textColor = sectionColor;
v.textLabel.font = sectionFont;
v.textLabel.numberOfLines = 1;
v.textLabel.minimumScaleFactor = 0.5;
v.textLabel.adjustsFontSizeToFitWidth = YES;
v.backgroundView.backgroundColor = [UIColor blueColor];
}
iOS12:
iOS13:
这很奇怪,因为当我在调试器中逐步停止时,它在 iOS13 中向我显示良好的图像,但在应用程序中却没有:
任何建议,提前致谢?
尝试添加叠加视图并更改此视图的颜色。
UIView *coloredView = [[UIView alloc] init];
coloredView.backgroundColor = [UIColor blueColor];
[v addSubview:coloredView];
[[coloredView.leadingAnchor constraintEqualToAnchor:v.leadingAnchor constant:0] setActive:YES];
[[coloredView.trailingAnchor constraintEqualToAnchor:v.trailingAnchor constant:0] setActive:YES];
[[coloredView.topAnchor constraintEqualToAnchor:v.topAnchor constant:0] setActive:YES];
[[coloredView.bottomAnchor constraintEqualToAnchor:v.bottomAnchor constant:0] setActive:YES];
我在我的一个应用程序中注意到了同样的事情。
然后在控制台看到一条日志信息:
Setting the background color on UITableViewHeaderFooterView has been
deprecated. Please set a custom UIView with your desired background
color to the backgroundView property instead.
将自定义 UIView
与所需的背景颜色设置为 UITableViewHeaderFooterView
的 backgroundView
解决了问题。
代码示例
class SomeHeaderView: UITableViewHeaderFooterView {
override init(reuseIdentifier: String?) {
super.init(reuseIdentifier: reuseIdentifier)
configure()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func configure() {
let backgroundView = UIView(frame: .zero)
backgroundView.backgroundColor = .blue
self.backgroundView = backgroundView
}
}
这对我有用。
v.contentView.backgroundColor = .blue
而不是
v.backgroundView.backgroundColor = .blue
我的 TableView 的 header 在 iOS13 中显示不佳。不管我放什么颜色,现在总是显示浅灰色...
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{ //Section color & style
UITableViewHeaderFooterView *v = (UITableViewHeaderFooterView *)view;
v.backgroundView.alpha = 1;
v.textLabel.textColor = sectionColor;
v.textLabel.font = sectionFont;
v.textLabel.numberOfLines = 1;
v.textLabel.minimumScaleFactor = 0.5;
v.textLabel.adjustsFontSizeToFitWidth = YES;
v.backgroundView.backgroundColor = [UIColor blueColor];
}
iOS12:
iOS13:
这很奇怪,因为当我在调试器中逐步停止时,它在 iOS13 中向我显示良好的图像,但在应用程序中却没有:
尝试添加叠加视图并更改此视图的颜色。
UIView *coloredView = [[UIView alloc] init];
coloredView.backgroundColor = [UIColor blueColor];
[v addSubview:coloredView];
[[coloredView.leadingAnchor constraintEqualToAnchor:v.leadingAnchor constant:0] setActive:YES];
[[coloredView.trailingAnchor constraintEqualToAnchor:v.trailingAnchor constant:0] setActive:YES];
[[coloredView.topAnchor constraintEqualToAnchor:v.topAnchor constant:0] setActive:YES];
[[coloredView.bottomAnchor constraintEqualToAnchor:v.bottomAnchor constant:0] setActive:YES];
我在我的一个应用程序中注意到了同样的事情。 然后在控制台看到一条日志信息:
Setting the background color on UITableViewHeaderFooterView has been deprecated. Please set a custom UIView with your desired background color to the backgroundView property instead.
将自定义 UIView
与所需的背景颜色设置为 UITableViewHeaderFooterView
的 backgroundView
解决了问题。
代码示例
class SomeHeaderView: UITableViewHeaderFooterView {
override init(reuseIdentifier: String?) {
super.init(reuseIdentifier: reuseIdentifier)
configure()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func configure() {
let backgroundView = UIView(frame: .zero)
backgroundView.backgroundColor = .blue
self.backgroundView = backgroundView
}
}
这对我有用。
v.contentView.backgroundColor = .blue
而不是
v.backgroundView.backgroundColor = .blue