UIPickerView 在模拟器中正常工作,但在设备上*看起来*为空
Posted
技术标签:
【中文标题】UIPickerView 在模拟器中正常工作,但在设备上*看起来*为空【英文标题】:UIPickerView works properly in simulator, but *looks* empty on device 【发布时间】:2020-05-22 02:54:34 【问题描述】:我有一个带有 UIPickView 的应用程序,它在模拟器中完美运行,但是当我在设备上运行该应用程序时,它显示为空。
重要提示:它只是看起来是空的,因为我仍然可以滚动它并且所选项目正在改变。
class ViewController: UIInputViewController, UIPickerViewDelegate, UIPickerViewDataSource
override func viewDidLoad()
super.viewDidLoad()
fontPicker.delegate = self
fontPicker.dataSource = self
fontPicker.selectRow(0, inComponent: 0, animated: true)
let fonts: [FontFamily] = [...]
var currentFont: FontFamily = FontFamily()
func numberOfComponents(in pickerView: UIPickerView) -> Int
1
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
fonts.count
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
fonts[row].title
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
currentFont = fonts[row]
【问题讨论】:
请提供代码示例 更改您的设备主题。 【参考方案1】:请检查您的设备暗模式是打开还是关闭...希望能解决问题
【讨论】:
【参考方案2】:最有可能发生的情况是您的文本是白色的,而背景也是白色的,所以您的项目就在那里,它们只是看起来不可见。
您可以尝试覆盖属性标题函数并返回一个 NSAttributedString 并将其 foregroundColor 属性设置为黑色。
或者,您可以覆盖行函数的视图,并按照您想要的方式构造和返回 UILabel 样式。
您可以在堆栈溢出或通过 Google 快速搜索找到这些示例。
【讨论】:
以上是关于UIPickerView 在模拟器中正常工作,但在设备上*看起来*为空的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap App 在模拟器上工作,但在 iPhone 设备上不能正常工作
UIButton 在第一次运行时工作正常,但在模拟器上第二次运行时不起作用
UIPickerView 的 ViewController 在选择后冻结
确定 Cordova 无法在 iOs 9 中启动但在 iOs 10 中正常工作的原因
将图像添加到 M MessageView 控制器在 IOS5 中可以正常工作,但在 IOS 6 中不能
设备上的 WebRequest (AFNetworking) 时 TableView 无响应,但在模拟器中正常 + MagicalRecord 问题