如何解决iOS14中表格部分标题中的白色背景
使用 xcode12 构建到 iOS14 后出现此问题。
我有一个带有透明背景的节标题,在iOS14上,它变成了白色,并在层次结构中添加了新的_UISystemBackgroundView
。
解决方法
iOS 14带有两个新的单元配置:
- 内容配置。
UIContentConfiguration
顾名思义,内容配置可以帮助您操纵单元格的内容,例如图像,文本,辅助文本,布局指标和行为。
- 背景配置
UIBackgroundConfiguration
可以帮助操纵背景颜色,视觉效果,笔触,插图和拐角半径。即使我们未指定默认设置,所有单元也会继承默认的后台配置。
解决方案
要摆脱默认的iOS14白色背景,您需要按以下方式更改UITableViewCell
或UITableViewHeaderFooterView
backgroundConfiguration
// Add this code in your AppDelegate didFinishLauncingWithOptions
// or you can change configuration of certain subclass using self. backgroundConfiguration = ...
if #available(iOS 14.0,*) {
var bgConfig = UIBackgroundConfiguration.listPlainCell()
bgConfig.backgroundColor = UIColor.clear
UITableViewHeaderFooterView.appearance().backgroundConfiguration = bgConfig
//For cell use: UITableViewCell.appearance().backgroundConfiguration = bgConfig
}
阅读this article了解更多信息
,@Husam解决方案的目标C版本:
select u.*
from users u
where not exists (select 1
from profiles p
where p.user_id = u.user_id and p.google_id is not null
);
,
在您的 UITableViewHeaderFooterView / UITableViewCell 自定义类中-使用实现示例覆盖下一个方法:
快捷键:
@available(iOS 14.0,*)
override func updateConfiguration(using state: UICellConfigurationState) {
backgroundConfiguration = UIBackgroundConfiguration.clear()
}
Objective-C:
- (void)updateConfigurationUsingState:(UICellConfigurationState *)state {
self.backgroundConfiguration = [UIBackgroundConfiguration clearConfiguration];
}
,
使用iOS 14的基于配置的API可能会禁用那些旧版API(例如cell.textLabel
,cell.detailTextLabel
)的功能。
要防止这种系统行为,可以在页眉/页脚/单元格中设置一个backgroundView
(旧版API),然后为该视图设置自定义backgroundColor
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。