UILocalNotification 最小操作——一个蓝色,一个透明?
Posted
技术标签:
【中文标题】UILocalNotification 最小操作——一个蓝色,一个透明?【英文标题】:UILocalNotification Minimal Actions – One Blue, One Clear? 【发布时间】:2015-11-22 20:42:58 【问题描述】:我在搞砸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)
【问题讨论】:
【参考方案1】:HiG 和notification programming guide 都不建议设置按钮的背景颜色。我发现的最具体的参考是后者,它指出:
如果破坏性属性为 NO,则动作按钮显示为蓝色;如果是YES,按钮是红色的。
这显然不准确,因为两个非破坏性动作并不都是蓝色的,但它隐含地暗示每个的颜色是由 ios 自动设置的
【讨论】:
希望我们能做的不仅仅是暗示——但感谢您挖掘它。 看起来这是正确的,我唯一的选择是忍受它,或者把它们都变成红色;)以上是关于UILocalNotification 最小操作——一个蓝色,一个透明?的主要内容,如果未能解决你的问题,请参考以下文章
如何向 UILocalNotification 警报添加操作按钮/操作?
在 iOS 10 中向 UILocalNotification 添加操作