swift5中如何实现输入框点开以后年月日选择,最后输出一个完整的代码
时间: 2024-10-15 07:13:53 浏览: 20
在Swift 5中,你可以使用Apple的内置框架`UIDatePicker`来实现在输入框旁边添加一个日期选择器。下面是一个简单的示例,展示如何创建一个包含日期选择器的UIViewController,并在用户完成选择后将日期显示在另一个UILabel中:
```swift
import UIKit
class ViewController: UIViewController {
// 输入框
@IBOutlet weak var inputTextField: UITextField!
// 日期选择器
@IBOutlet weak var datePicker: UIDatePicker!
// 显示日期的UILabel
@IBOutlet weak var dateLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// 设置默认日期选择器模式
datePicker.datePickerMode = .date
// 设置日期选择器的最小和最大日期
let calendar = Calendar.current
datePicker.minimumDate = calendar.startOfDay(for: Date())
datePicker.maximumDate = Date()
// 当用户点击输入框时,显示日期选择器
inputTextField.addTarget(self, action: #selector(datePickerTapped), for: .touchUpInside)
}
@objc func datePickerTapped() {
// 用户选择日期后,设置到inputTextField并更新dateLabel
guard let selectedDate = datePicker.date else { return }
inputTextField.text = "\(selectedDate.year)\(selectedDate.month)\(selectedDate.day)"
dateLabel.text = "Selected date: \(selectedDate)"
}
// 如果需要,也可以添加键盘消失时自动关闭选择器的代理方法
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
datePicker.center = inputTextField.bounds.midpoint
}
}
```
在这个例子中,当用户点击`UITextField`时,`datePickerTapped`方法会被触发,显示日期选择器。用户选择的日期会自动填充到`UITextField`,同时`dateLabel`也会更新显示。
阅读全文