iOS Swift 3 - UIDatePicker

swiftIOS

1个回答

写回答

Bbbbbban

2025-06-16 09:20

+ 关注

IOS
IOS

IOS Swift 3 - UIDatePicker

IOS开发中,UIDatePicker是一个常用的界面控件,它允许用户选择日期和时间。本文将介绍如何使用Swift 3编写代码来创建和使用UIDatePicker,并提供一个案例代码来演示其功能。

创建UIDatePicker

要创建一个UIDatePicker,我们可以在视图控制器中添加一个UIDatePicker实例。首先,我们需要在视图控制器的属性中声明一个UIDatePicker变量,并在视图加载时进行初始化。

Swift

class ViewController: UIViewController {

var datePicker: UIDatePicker!

override func viewDidLoad() {

super.viewDidLoad()

datePicker = UIDatePicker()

datePicker.datePickerMode = .dateAndTime

datePicker.addTarget(self, action: #selector(datePickerValueChanged), for: .valueChanged)

// 设置UIDatePicker的位置和大小

datePicker.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 200)

// 将UIDatePicker添加到视图中

view.addSubview(datePicker)

}

@objc func datePickerValueChanged() {

let selectedDate = datePicker.date

// 在此处处理日期变化的逻辑

}

}

在上述代码中,我们首先声明了一个datePicker变量来存储UIDatePicker实例。然后,我们将它初始化为默认样式的UIDatePicker,并设置datePickerMode为.dateAndTime,以便用户可以选择日期和时间。接下来,我们通过调用addTarget方法,为UIDatePicker添加一个值变化的事件处理函数datePickerValueChanged。最后,我们设置了UIDatePicker的位置和大小,并将其添加到视图中。

处理日期变化

当用户选择了日期或时间时,我们可以通过为UIDatePicker添加一个值变化的事件处理函数来捕获这些变化。在案例代码中,我们定义了一个名为datePickerValueChanged的函数来处理日期变化事件。

Swift

@objc func datePickerValueChanged() {

let selectedDate = datePicker.date

// 在此处处理日期变化的逻辑

}

在上述代码中,我们通过调用datePicker的date属性来获取用户选择的日期和时间。您可以根据需要在此处添加自己的逻辑来处理日期变化。

案例代码:选择提醒时间

让我们以一个案例代码来演示如何使用UIDatePicker来选择提醒时间。在这个案例中,我们将创建一个按钮和一个用于显示提醒时间的标签。当用户点击按钮时,将弹出一个UIDatePicker供用户选择提醒时间,并将所选时间显示在标签上。

Swift

class ViewController: UIViewController {

var datePicker: UIDatePicker!

var reminderLabel: UILabel!

override func viewDidLoad() {

super.viewDidLoad()

reminderLabel = UILabel(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 30))

reminderLabel.textAlignment = .center

view.addSubview(reminderLabel)

let selectReminderButton = UIButton(frame: CGRect(x: 0, y: 50, width: view.frame.width, height: 30))

selectReminderButton.setTitle("选择提醒时间", for: .normal)

selectReminderButton.setTitleColor(.blue, for: .normal)

selectReminderButton.addTarget(self, action: #selector(selectReminderButtonTapped), for: .touchUpInside)

view.addSubview(selectReminderButton)

datePicker = UIDatePicker()

datePicker.datePickerMode = .time

datePicker.addTarget(self, action: #selector(datePickerValueChanged), for: .valueChanged)

}

@objc func selectReminderButtonTapped() {

let alertController = UIAlertController(title: "选择提醒时间", message: nil, preferredStyle: .actionSheet)

alertController.view.addSubview(datePicker)

let doneAction = UIAlertAction(title: "完成", style: .default) { _ in

let dateFormatter = DateFormatter()

dateFormatter.timeStyle = .short

let selectedTime = dateFormatter.string(from: self.datePicker.date)

self.reminderLabel.text = "提醒时间:\(selectedTime)"

}

alertController.addAction(doneAction)

let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)

alertController.addAction(cancelAction)

present(alertController, animated: true, completion: nil)

}

@objc func datePickerValueChanged() {

let dateFormatter = DateFormatter()

dateFormatter.timeStyle = .short

let selectedTime = dateFormatter.string(from: datePicker.date)

reminderLabel.text = "提醒时间:\(selectedTime)"

}

}

在上述案例代码中,我们首先创建了一个用于显示提醒时间的标签reminderLabel和一个选择提醒时间的按钮selectReminderButton。当用户点击按钮时,我们创建了一个UIAlertController,并在其上添加了一个UIDatePicker。当用户点击“完成”按钮时,我们使用DateFormatter将所选时间转换为字符串,并将其显示在reminderLabel中。

通过上述案例代码,您可以学习如何使用UIDatePicker来选择日期和时间,并在应用程序中添加提醒功能。希望本文对您有所帮助!

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号