ios - 如何在 iOS 13 中将 UISegmentedControl 的 backgroundColor 设置为白色
问题描述
iOS 13 对 UISegmentedControl 进行了一些更改,包括切换所选片段时非常漂亮的动画。但是我注意到它没有backgroundColor
正确显示属性,它似乎总是有点色彩。
我已经看到了回答如何设置 theselectedSegmentTintColor
等的问题,但我正在努力设置backgroundColor
to say .white
,无论我做什么,即使没有tintColor
应用或应用类似的设置,它总是显示出一点灰色。将 设置backgroundColor
为其他颜色显示相同的行为,但最明显的是白色。更神秘的是,虽然这种差异在 iOS 13 模拟器和运行 iOS 13 的物理设备上都出现了,但可视化调试器(在 XCode 11 GM2 中)并没有显示出这种差异!
这里有几个屏幕截图显示,即使 的backgroundColor
设置UISegmentedControl
为与后面显示的视图相同,backgroundColor
它们也略有不同。
我已经尝试过backgroundImage
按照此 SO 帖子中的建议应用 a 的建议:UISegmentedControl iOS 13 clear color但最终将样式恢复为它在 iOS 12 中的外观,并且您也失去了漂亮的动画。
非常感谢任何指导或建议!我还向 Apple 提交了错误报告,看看是否有任何结果。
解决方案
我有同样的问题,没有很酷的方法可以解决它。所以我做了这个小解决方法。我不喜欢它,我并不为此感到自豪,但它确实有效。
func fixBackgroundSegmentControl( _ segmentControl: UISegmentedControl){
if #available(iOS 13.0, *) {
//just to be sure it is full loaded
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
for i in 0...(segmentControl.numberOfSegments-1) {
let backgroundSegmentView = segmentControl.subviews[i]
//it is not enogh changing the background color. It has some kind of shadow layer
backgroundSegmentView.isHidden = true
}
}
}
}
推荐阅读
- javascript - 为什么条带客户令牌没有保存在我的数据库中?
- python-3.x - 如何从具有真实坐标的 FITS 文件中绘制图像?
- r - RMarkdown - 在 YAML 中使用 R 代码作为参考 docx
- sql - 根据多个条件更新多个列
- excel - 可以在查找值“左侧”的行中定位数据的电子表格公式
- angular - 防止 FormControl Angular Directive 将选择标签设置为无值
- c - 根据角度和距离计算 3d 目的地
- drupal-8 - 服务器不支持 Drupal 8 StartTLS 或无法启动会话
- sql - 在 2 个列上加入表格 - 无法弄清楚
- mysql - MySQL DateTime 选择间隔