简体   繁体   中英

UIPickerView only showing two gray lines

this is my first time on stackoverflow, and I'm very new to programming so forgive me if this is a bad question or something. Anyway, I tried to make a UIPickerView and the program runs successfully, but only two horizontal gray lines show up. I'll include some code and an image. Thanks a lot in advance.

let UIPicker: UIPickerView = UIPickerView()
    
    UIPicker.delegate = self as? UIPickerViewDelegate
    UIPicker.dataSource = self as? UIPickerViewDataSource
    self.view.addSubview(UIPicker)
    UIPicker.center = self.view.center
    
    class LanguageNativeViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
        
        let dataArray = ["English", "Spanish", "French", "German", "Italian", "Portuguese", "Russian", "Japanese"]
        
        func numberOfComponents(in pickerView: UIPickerView) -> Int {
           return 1
        }
        func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
           return dataArray.count
        }
        func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
           let row = dataArray[row]
           return row
        }

Image of app running

For future reference... when asking a question here, it's a good idea to post the actual code you're working on.

Since we have no idea where you are placing your code, give this a try:

class LanguageNativeViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
    
    let dataArray = ["English", "Spanish", "French", "German", "Italian", "Portuguese", "Russian", "Japanese"]

    let UIPicker: UIPickerView = UIPickerView()

    override func viewDidLoad() {
        super.viewDidLoad()

        UIPicker.delegate = self
        UIPicker.dataSource = self
        self.view.addSubview(UIPicker)
        UIPicker.center = self.view.center
        
    }
    
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return dataArray.count
    }
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        let row = dataArray[row]
        return row
    }

}

Result:

在此处输入图片说明

As a side note, use lower-case for variables and properties:

let uiPicker: UIPickerView = UIPickerView()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM