0
我已經讀了How to use selected value of UIPickerView as time interval for notifications?一遍又一遍,但我不知道如何將答案應用於我的情況。如何將UIPickerView的選定值用作通知的content.sound?
基本上,我用兩個選項編碼了選取器視圖。我不知道該怎麼
1)使每個挑選視圖行對應於一定的報警聲
2)使content.sound可以是兩種報警聲選擇一個變量。
我的Assets.xcassets中已經有兩個聲音文件了,我只是不知道如何將它編程到鬧鐘中。
這是我到目前爲止的代碼:
@IBOutlet weak var soundPickerView: UIPickerView!
let sounds = ["chirping birds", "flowing water"]
func numberOfComponents(in pickerView: UIPickerView) -> Int
{
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
{
return sounds[row]
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
{
return sounds.count
}
func scheduleNotification(at date: Date) {
let calendar = Calendar(identifier: .gregorian)
let components = calendar.dateComponents(in: .current, from: date)
let newComponents = DateComponents(calendar: calendar, timeZone: .current, month: components.month, day: components.day, hour: components.hour, minute: components.minute)
let trigger = UNCalendarNotificationTrigger(dateMatching: newComponents, repeats: false)
let content = UNMutableNotificationContent()
content.title = " wake up call "
content.body = "Time to wake up!"
content.sound = UNNotificationSound(named: "Morning Birds.aiff")
還有其他代碼的通知要求等,但以上僅僅是相關的代碼。最後一行代碼是我知道需要修改的代碼。
非常感謝你的解釋!我試圖實現這個,不幸的是,最後兩行代碼中出現錯誤「使用未解析標識符」行。 – jfjldsfjljfkls
你有沒有把你的類委託給'UIPickerViewDelegate'看看我的代碼的第一行。如果我按照原樣複製並粘貼這段代碼,它就像一個魅力一樣工作 – GIJOW
我創建了一個新項目來自己測試這段代碼,並確保我的ViewController.swift文件包含「class ViewController:UIViewController,UIPickerViewDelegate,UIPickerViewDataSource」,但現在我'得到錯誤'使用未解析的標識符'日期'「。 – jfjldsfjljfkls