在Xcode 11中,你可以通过实现UIPickerViewDelegate
协议中的pickerView(_:didSelectRow:inComponent:)
方法来给选定的选项一个动作。下面是一个示例代码:
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
let options = ["Option 1", "Option 2", "Option 3"] // 所选数组
override func viewDidLoad() {
super.viewDidLoad()
let pickerView = UIPickerView()
pickerView.delegate = self
pickerView.dataSource = self
view.addSubview(pickerView)
}
// 实现UIPickerViewDataSource协议中的方法
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1 // 单列选择器
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return options.count // 返回所选数组的元素个数
}
// 实现UIPickerViewDelegate协议中的方法
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return options[row] // 返回所选数组中对应行的选项
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let selectedOption = options[row] // 获取选定的选项
// 执行对选定选项的操作
print("选定的选项是:\(selectedOption)")
}
}
在上述代码中,我们创建了一个UIPickerView
并将其添加到视图中。然后,我们实现了UIPickerViewDataSource
协议和UIPickerViewDelegate
协议中的方法。numberOfComponents(in:)
方法返回选择器的列数,numberOfRowsInComponent
方法返回每列的行数,titleForRow
方法返回每行的标题。最重要的是,我们实现了didSelectRow
方法,在选定选项时执行所需的操作。
这是一个简单的示例,你可以根据自己的需求进行修改和扩展。关于Xcode 11和PickerView的更多信息,你可以参考腾讯云的相关文档和教程:
领取专属 10元无门槛券
手把手带您无忧上云