如何让UIDatePicker在黑色背景下正常可见?
UIDatePicker深色背景低辨识度解决方案
- 方案1:强制覆盖界面样式
直接给UIDatePicker强制指定浅色模式,避免系统暗色模式自动把文本切换为浅白色导致和黑色背景融合,代码示例如下:// Swift 写法 datePicker.overrideUserInterfaceStyle = .light// Objective-C 写法 datePicker.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; - 方案2:自定义文本与背景样式
可以单独修改文本颜色,同时增加半透明背景提高组件辨识度,其中文本颜色修改通过KVC实现,无公开API但可正常过审:// Swift 写法 // 修改文本为白色 datePicker.setValue(UIColor.white, forKey: "textColor") // 增加半透明背景+圆角 datePicker.backgroundColor = UIColor.white.withAlphaComponent(0.1) datePicker.layer.cornerRadius = 8 datePicker.layer.masksToBounds = true// Objective-C 写法 // 修改文本为白色 [datePicker setValue:[UIColor whiteColor] forKey:@"textColor"]; // 增加半透明背景+圆角 datePicker.backgroundColor = [UIColor colorWithWhite:1 alpha:0.1]; datePicker.layer.cornerRadius = 8; datePicker.layer.masksToBounds = YES; - 方案3:适配新样式选择器
iOS13.4及以上版本如果使用compact、inline样式的UIDatePicker,可直接修改tintColor调整控件主色调,也可在外层增加带亮色边框的容器视图,未点击状态下也能清晰识别组件位置。
内容的提问来源于stack exchange,提问作者jspiezio
相关产品推荐
相关产品推荐

