基于iOS的APP“好妈妈”开发日志十——解决UIPickerView UIToolBar 按钮失效问题
点击UIPickerView UIToolBar中的按钮,UIPickerView中的内容自动上移三个row
受到https://www.cnblogs.com/gchlcc/p/5760161.html启发,直接将改好的代码放到下面:
实现在UIPickView中添加确认、取消按钮(pickview根据需要自行实现)
@IBOutlet weak var SetTime1: UITextField!
var pickView1 = UIPickerView()
var pickerDateToolbar = UIToolbar()
override func viewDidLoad() {
super.viewDidLoad()
pickerDateToolbar = UIToolbar.init(frame: CGRect(x: 0,y: 0,width: 320, height: 44))
pickerDateToolbar.barStyle = UIBarStyle.blackOpaque
pickerDateToolbar.sizeToFit()
let barItems = NSMutableArray.init()
//存放三个barbuttonitem
let cancelBtn = UIBarButtonItem.init(title: "取消", style: UIBarButtonItemStyle.plain, target: self, action: #selector(toolBarCancelClick))//左按钮
barItems.add(cancelBtn)
let flexSpace = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)//中间的弹簧
barItems.add(flexSpace)
let doneBtn = UIBarButtonItem.init(title: "完成", style: UIBarButtonItemStyle.done, target: self, action: #selector(toolBarDoneClick))//右按钮
barItems.add(doneBtn)
pickerDateToolbar.setItems(barItems as? [UIBarButtonItem], animated: true)
pickerDateToolbar.tintColor = UIColor.black//字颜色
pickerDateToolbar.barTintColor = UIColor.white
//bar背景颜色
// 重点的一句
SetTime1.inputView = pickView1
self.SetTime1.inputAccessoryView = pickerDateToolbar
}
@objc func toolBarCancelClick(){
self.view.endEditing(true)
}
@objc func toolBarDoneClick(){
let row = pickView1.selectedRow(inComponent: 0) //获取当前行
let value = Date1.object(at: row) as! String //获取行内数据
self.SetTime1.text = value
self.view.endEditing(true)
}
效果图:
努力奋斗!~?luhh?