我正在处理UILocalNotification和通知动作–均按我的预期工作,除了当我在类别中提供两个Minimal动作时,通过在通知中心中滑动显示这些动作时,最右边的动作是总是蓝色。

由于我的应用程序中的动作是相等的,因此我希望它们都是透明的灰色,而不是蓝色,一种透明。我知道我可以使用destructive将它们都设为红色,但这也是错误的,如果我将destructive显式设置为false,我仍然会得到一种蓝色,一种清晰。

这是一张显示我在说什么的图像:

ios - UILocalNotification最小操作–一蓝,一清?-LMLPHP

这是我用来制作的代码:

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)

最佳答案

HiGnotification programming guide均不建议设置按钮的背景色。我发现的最具体的参考文献指出:

如果破坏性属性为“否”,则该操作的按钮显示为蓝色;如果是,则按钮为红色。

这显然是不精确的,因为两个非破坏性动作都不都是蓝色的,但是它隐含地暗示每个颜色都是由iOS自动设置的

10-07 19:49