在 UIPickerView 上设置日期时的本地通知?

Posted

技术标签:

【中文标题】在 UIPickerView 上设置日期时的本地通知?【英文标题】:Local Notification when date is set on a UIPickerView? 【发布时间】:2017-10-08 14:31:47 【问题描述】:

当用户在UIPicker 上设置日期时,我想设置本地通知。

目前我没有代码,因为我不知道从哪里开始。

【问题讨论】:

【参考方案1】:

我假设您希望用户选择何时发送通知,所以:

首先,在应用委托中授权通知,如下所示:

import UserNotifications

class AppDelegate 
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool 
        // Override point for customization after application launch.
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert, .sound, .badge])  (granted, error) in
            // Enable or disable features based on authorization
        
        return true
    

接下来,假设您已经创建了一个 datePicker 并将其连接到代码:

@IBOutlet var datePicker: UIDatePicker!

您安排通知的功能是:

func scheduleNotification() 
    let content = UNMutableNotificationContent() //The notification's content
    content.title = "Hi there"
    content.sound = UNNotificationSound.default()

    let dateComponent = datePicker.calendar.dateComponents([.day, .hour, .minute], from: datePicker.date)
    let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponent, repeats: false)

    let notificationReq = UNNotificationRequest(identifier: "identifier", content: content, trigger: trigger)

    UNUserNotificationCenter.current().add(notificationReq, withCompletionHandler: nil)

您可以在此处阅读有关 UserNotifications 和通知触发器的更多信息:https://developer.apple.com/documentation/usernotifications

【讨论】:

谢谢,所以我只有一个只有日期和月份的选择器,我必须将 .day、.hour、.minute 更改为 .day .month? 是的,你应该这样做。如果我的答案是正确的,请标记为正确答案。 有错误吗?如果没有,也许你应该选择小时和分钟。 不,没有错误,我还添加了小时和分钟,看看它是否有效。我还把 scheduleNotification() 放在了一个按钮里面。 您是否授权通知?

以上是关于在 UIPickerView 上设置日期时的本地通知?的主要内容,如果未能解决你的问题,请参考以下文章

从 NSArray 对象设置 UIPickerView

在“UIPickerView”功能设置上接收错误

如何在 UIPickerView 上设置 minimumFontSize 或 lines?

如何在 Swift 的日期选择器上设置本地通知时间

带有自定义日期的 UIPickerView

从网页上保存图片到本地硬盘时的默认路径如何修改设置?