UINavigationBar 外观色调颜色影响系统 windows,错误还是有意为之?
UINavigationBar appearance tint color affects system windows, bug or intended?
在iOS10中可以使用这行代码为所有应用设置导航栏的色调:
UINavigationBar.appearance().barTintColor = UIColor.green
然而当在iOS11中做同样的事情时,它似乎也影响了系统视图。例如,当使用以下代码显示 UIActivityViewController 时:
let titleText = "SOME TITLE"
let urlStr = "https://google.com"
let activityItems = [titleText,urlStr]
let activityViewController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
并选择 "Add to Notes" 选项,导航栏显示为之前设置的颜色(本例中为绿色)
请问,这是bug还是故意为之?
(我已经在一个多月前向苹果提交了错误报告,但没有得到回复)
这是问题的屏幕截图:
为什么不简单地继承 UINavigationController
并像这样设置外观代理?
UINavigationBar.appearance(whenContainedInInstancesOf: [YourUINavigationControllerSubclass.self]).barTintColor = UIColor.green
这不那么骇人听闻,而且可以解决问题而不会产生任何负面影响。
您可以找到有关该主题的更多信息 here。
在iOS10中可以使用这行代码为所有应用设置导航栏的色调:
UINavigationBar.appearance().barTintColor = UIColor.green
然而当在iOS11中做同样的事情时,它似乎也影响了系统视图。例如,当使用以下代码显示 UIActivityViewController 时:
let titleText = "SOME TITLE"
let urlStr = "https://google.com"
let activityItems = [titleText,urlStr]
let activityViewController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
并选择 "Add to Notes" 选项,导航栏显示为之前设置的颜色(本例中为绿色)
请问,这是bug还是故意为之?
(我已经在一个多月前向苹果提交了错误报告,但没有得到回复)
这是问题的屏幕截图:
为什么不简单地继承 UINavigationController
并像这样设置外观代理?
UINavigationBar.appearance(whenContainedInInstancesOf: [YourUINavigationControllerSubclass.self]).barTintColor = UIColor.green
这不那么骇人听闻,而且可以解决问题而不会产生任何负面影响。
您可以找到有关该主题的更多信息 here。