基于iOS的APP“好妈妈”开发日志十——解决UIPickerView UIToolBar 按钮失效问题

32 篇文章 0 订阅
27 篇文章 0 订阅

基于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?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值