Swift 4中实现弹出各种实用列表选择的方法有很多,以下是一些常用的方法,包括使用UIKit提供的UIPickerView和UIAlertController,以及自定义弹窗等。
使用UIPickerView
UIPickerView是一种可以用来选择列表项的视图,通常用于选择日期、时间、地区等。
示例代码:
import UIKit
class ViewController: UIViewController {
var pickerView = UIPickerView()
override func viewDidLoad() {
super.viewDidLoad()
pickerView.delegate = self
pickerView.dataSource = self
pickerView.backgroundColor = .white
pickerView.frame = CGRect(x: 0, y: view.frame.height / 2, width: view.frame.width, height: 200)
view.addSubview(pickerView)
}
}
extension ViewController: UIPickerViewDelegate, UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return 10 // 假设有10个选项
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return "选项 \(row)"
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
// 当用户选择一个选项时,你可以在这里处理
print("选中的选项是:\(row)")
}
}
使用UIAlertController
UIAlertController可以用来显示一个包含文本字段、开关、选择器等的模态视图。
示例代码:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
presentAlertController()
}
func presentAlertController() {
let alertController = UIAlertController(title: "选择选项", message: "请选择一个选项", preferredStyle: .actionSheet)
let option1Action = UIAlertAction(title: "选项 1", style: .default) { (action) in
print("选项 1 被选中")
}
let option2Action = UIAlertAction(title: "选项 2", style: .default) { (action) in
print("选项 2 被选中")
}
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
alertController.addAction(option1Action)
alertController.addAction(option2Action)
alertController.addAction(cancelAction)
present(alertController, animated: true, completion: nil)
}
}
自定义弹窗
如果你需要更复杂的列表选择,可以自定义一个弹窗。
示例代码:
import UIKit
class ViewController: UIViewController {
var customView = CustomView()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(customView)
customView.frame = view.bounds
}
}
class CustomView: UIView {
let pickerView = UIPickerView()
override init(frame: CGRect) {
super.init(frame: frame)
pickerView.delegate = self
pickerView.dataSource = self
pickerView.backgroundColor = .white
addSubview(pickerView)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
pickerView.frame = bounds
}
}
extension CustomView: UIPickerViewDelegate, UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return 10 // 假设有10个选项
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return "选项 \(row)"
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
// 当用户选择一个选项时,你可以在这里处理
print("选中的选项是:\(row)")
}
}
以上代码展示了如何在Swift 4中实现弹出各种实用列表选择的方法。你可以根据自己的需求选择合适的方法来实现。
