UIPickerView 在模拟器中正常工作,但*看起来*在设备上是空的
UIPickerView works properly in simulator, but *looks* empty on device
我有一个带有 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]
}
}
请检查您的设备是否开启深色模式...希望能解决问题
最有可能发生的情况是您的文本是白色的,背景也是白色的,所以您的项目就在那里,只是看起来不可见。
您可以尝试覆盖属性标题函数和 return NSAttributedString 并将其 foregroundColor 属性设置为黑色。
或者,您可以覆盖行函数的视图并构造 return 一个按您想要的方式设置样式的 UILabel。
您可以在此处的堆栈溢出或通过快速 Google 搜索找到大量此类示例。
我有一个带有 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]
}
}
请检查您的设备是否开启深色模式...希望能解决问题
最有可能发生的情况是您的文本是白色的,背景也是白色的,所以您的项目就在那里,只是看起来不可见。
您可以尝试覆盖属性标题函数和 return NSAttributedString 并将其 foregroundColor 属性设置为黑色。
或者,您可以覆盖行函数的视图并构造 return 一个按您想要的方式设置样式的 UILabel。
您可以在此处的堆栈溢出或通过快速 Google 搜索找到大量此类示例。