我正在处理UILocalNotification
和通知动作–均按我的预期工作,除了当我在类别中提供两个Minimal
动作时,通过在通知中心中滑动显示这些动作时,最右边的动作是总是蓝色。
由于我的应用程序中的动作是相等的,因此我希望它们都是透明的灰色,而不是蓝色,一种透明。我知道我可以使用destructive
将它们都设为红色,但这也是错误的,如果我将destructive
显式设置为false
,我仍然会得到一种蓝色,一种清晰。
这是一张显示我在说什么的图像:
这是我用来制作的代码:
let note = UILocalNotification()
note.fireDate = NSDate(timeIntervalSinceNow: 5)
note.timeZone = NSTimeZone.defaultTimeZone()
note.alertBody = "Actions: A and B"
note.alertTitle = "Notification!"
let action1 = UIMutableUserNotificationAction()
action1.identifier = “ACTION_A"
action1.title = "A"
action1.activationMode = .Background
let action2 = UIMutableUserNotificationAction()
action2.identifier = “ACTION_B"
action2.title = "B"
action2.activationMode = .Background
let category = UIMutableUserNotificationCategory()
category.identifier = "ANSWERS_CATEGORY"
category.setActions([action1, action2], forContext: .Default)
note.category = “ACTIONS_CATEGORY"
let categories = Set(arrayLiteral: category)
let settingsRequest = UIUserNotificationSettings(forTypes: [.Alert, .Sound, .Badge], categories: categories)
UIApplication.sharedApplication().registerUserNotificationSettings(settingsRequest)
UIApplication.sharedApplication().scheduleLocalNotification(note)
最佳答案
HiG和notification programming guide均不建议设置按钮的背景色。我发现的最具体的参考文献指出:
如果破坏性属性为“否”,则该操作的按钮显示为蓝色;如果是,则按钮为红色。
这显然是不精确的,因为两个非破坏性动作都不都是蓝色的,但是它隐含地暗示每个颜色都是由iOS自动设置的