首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Done按钮创建两个UIPickerView

使用Done按钮创建两个UIPickerView的步骤如下:

  1. 创建两个UIPickerView对象,并设置其数据源和代理为当前视图控制器。
  2. 在视图控制器的界面中添加一个工具栏,用于放置Done按钮。
  3. 创建一个UIBarButtonItem对象,并将其样式设置为UIBarButtonItemStyleDone。
  4. 将UIBarButtonItem对象添加到工具栏中。
  5. 在点击Done按钮时,调用相应的方法来获取选中的UIPickerView的数值,并进行相应的处理。

下面是一个示例代码:

代码语言:txt
复制
import UIKit

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
    
    let pickerView1 = UIPickerView()
    let pickerView2 = UIPickerView()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        pickerView1.dataSource = self
        pickerView1.delegate = self
        pickerView2.dataSource = self
        pickerView2.delegate = self
        
        let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 44))
        let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneButtonTapped))
        toolbar.setItems([doneButton], animated: true)
        
        let textField1 = UITextField(frame: CGRect(x: 0, y: 100, width: view.frame.size.width, height: 44))
        textField1.inputView = pickerView1
        textField1.inputAccessoryView = toolbar
        view.addSubview(textField1)
        
        let textField2 = UITextField(frame: CGRect(x: 0, y: 200, width: view.frame.size.width, height: 44))
        textField2.inputView = pickerView2
        textField2.inputAccessoryView = toolbar
        view.addSubview(textField2)
    }
    
    @objc func doneButtonTapped() {
        let selectedValue1 = pickerView1.selectedRow(inComponent: 0)
        let selectedValue2 = pickerView2.selectedRow(inComponent: 0)
        
        // 处理选中的数值
        print("PickerView 1: \(selectedValue1)")
        print("PickerView 2: \(selectedValue2)")
        
        // 其他处理逻辑...
        
        view.endEditing(true)
    }
    
    // UIPickerViewDataSource方法
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }
    
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        // 返回相应的行数
        return 10
    }
    
    // UIPickerViewDelegate方法
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        // 返回每行的标题
        return "Row \(row)"
    }
}

这段代码创建了两个UIPickerView对象,并将其数据源和代理设置为当前视图控制器。在视图控制器的界面中添加了一个工具栏,并在工具栏中放置了一个Done按钮。当点击Done按钮时,会调用doneButtonTapped方法来获取选中的UIPickerView的数值,并进行相应的处理。

注意:这只是一个示例代码,实际使用时需要根据具体需求进行适当的修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • iOS流布局UICollectionView系列六——将布局从平面应用到空间

    前面,我们将布局由线性的瀑布流布局扩展到了圆环布局,这使我们使用UICollectionView的布局思路大大迈进了一步,这次,我们玩的更加炫一些,想办法将布局应用的空间,你是否还记得,在管理布局的item的具体属性的类UICollectionViewLayoutAttributrs类中,有transform3D这个属性,通过这个属性的设置,我们真的可以在空间的坐标系中进行布局设计。iOS系统的控件中,也并非没有这样的先例,UIPickerView就是很好的一个实例,这篇博客,我们就通过使用UICollectionView实现一个类似系统的UIPickerView的布局视图,来体会UICollectionView在3D控件布局的魅力。系统的pickerView效果如下:

    02
    领券