iOS 13对UISegmentedControl进行了一些更改,包括在切换选定段时引入了非常好的动画效果。但是我注意到它没有正确显示backgroundColor属性,它似乎总是有点色调。
我看到了回答如何设置selectedSegmentTintColor等内容的问题,但我很难将backgroundColor设置为.white,无论我做什么,它总是显示为灰色,即使没有应用tintColor或类似的设置。将backgroundColor设置为其他颜色会显示相同的行为,但白色最明显。更神秘的是,虽然这种差异在运行iOS 13的物理设备和模拟器上都显示出来,但视觉调试器(在XCode 11 GM2中)不显示此差异!
以下是一些屏幕截图,即使UISegmentedControl的backgroundColor设置为与其后面显示的视图的backgroundColor相同,它们也略有不同。
运行iOS 13的设备(白色backgroundColor)
在Visual Debugger中显示的相同视图/代码(白色backgroundColor)
我看到了回答如何设置selectedSegmentTintColor等内容的问题,但我很难将backgroundColor设置为.white,无论我做什么,它总是显示为灰色,即使没有应用tintColor或类似的设置。将backgroundColor设置为其他颜色会显示相同的行为,但白色最明显。更神秘的是,虽然这种差异在运行iOS 13的物理设备和模拟器上都显示出来,但视觉调试器(在XCode 11 GM2中)不显示此差异!
以下是一些屏幕截图,即使UISegmentedControl的backgroundColor设置为与其后面显示的视图的backgroundColor相同,它们也略有不同。
运行iOS 13的设备(白色backgroundColor)
![enter image description here](https://istack.dev59.com/FPh2P.webp)
![enter image description here](https://istack.dev59.com/935cv.webp)
我尝试了在这个SO帖子中建议的应用backgroundImage
的建议: UISegmentedControl iOS 13 clear color,但这会使样式回到在iOS 12中的样子,而且你也会失去漂亮的动画。
非常感谢任何指导或建议!我也向苹果提交了错误报告,看看是否有什么结果。