美文网首页
UIPickerView第一次不显示选中框的问题(包围选择cel

UIPickerView第一次不显示选中框的问题(包围选择cel

作者: 姬歌 | 来源:发表于2019-01-04 20:22 被阅读6次

据说是iOS10下的问题,我的是iOS12.1
尝试了各种办法,包括

  let row = picker.selectedRow(inComponent: 0)
  picker.selectRow(row, inComponent: 0, animated: false)

等方法,但是还是没用啊!
最后用了比较笨的方法。你不是第一次不显示吗?那我就先预热一次!

class DMPicker: UIView {
    ...
    private var picker: UIPickerView!

    func show() {
        UIApplication.shared.keyWindow?.addSubview(self)
        picker.reloadAllComponents()
    }
    
    //第一次展示不能显示出选中线,所以预热一次,先把选中线展示出来
    func testShow() {
        self.isHidden = true
        UIApplication.shared.keyWindow?.addSubview(self)
        picker.reloadAllComponents()
        self.removeFromSuperview()
        self.isHidden = false
    }
}

ViewController中,

lazy var picker: DMPicker = {
        let apicker = DMPicker(frame: CGRect.zero)
        apicker.keyofValue = "teamName"
        apicker.title = "选择班组"
        apicker.didSelectedRow = {
            (dic) in
            self.selectedTeam = dic
        }
        return apicker
    }()

override func viewDidLoad() {
        super.viewDidLoad()
        
        // Do any additional setup after loading the view.
        picker.testShow()    //预热
}
//实际显示的时候
fun someFunc() {
    self.picker.itemArray = self.teams
    self.picker.show()
}

这样就能在‘第一次’显示数据的时候,让选中线显示出来

相关文章

网友评论

      本文标题:UIPickerView第一次不显示选中框的问题(包围选择cel

      本文链接:https://www.haomeiwen.com/subject/drokrqtx.html