Чтобы рассчитать время окончания вы можете использовать
timerEndTime = NSDate(timeIntervalSinceNow:NSTimeInterval(oreWanted * 11))
Таким образом, вы получите NSDate
объект. Теперь вы можете запустить UILocalNotification
в указанное расчетное время:
Примечание: При запуске приложения вам необходимо запросить разрешения на получение уведомлений. Я упростил это здесь с notificationsAllowed
и soundsAllowed
, которые являются логическими переменными в моем AppDelegate.
let appDelegate = UIApplication.sharedApplication.delegate as! AppDelegate
if appDelegate.notificationsAllowed {
let notification = UILocalNotification()
notification.fireDate = timerEndTime
notification.timeZone = NSTimeZone.defaultTimeZone()
notification.alertBody = "Notification body text"
notification.alertTitle = "Notification alert title"
if appDelegate.soundsAllowed {
notification.soundName = UILocalNotificationDefaultSoundName
}
UIApplication.sharedApplication().scheduleLocalNotification(notification)
}
EDIT
Зарегистрируйте приложение для уведомлений в AppDelegate:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var notificationsAllowed = false
var notificationSoundAllowed = false
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let notificationSettings = UIUserNotificationSettings(forTypes: UIUserNotificationType.Sound | UIUserNotificationType.Alert, categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings)
return true
}
func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
if notificationSettings.types & UIUserNotificationType.Alert != nil {
self.notificationsAllowed = true
}
if notificationSettings.types & UIUserNotificationType.Sound != nil {
self.notificationSoundAllowed = true
}
}
Рад помочь вам. Если это было решение, пожалуйста, отметьте правильный ответ, нажав на полый флажок. Спасибо. – zisoft
Знаете ли вы способ, чтобы таймер продолжал идти, даже когда пользователь нажимает кнопку «домой»? –
, чтобы пользователь мог видеть, сколько осталось времени. –