更改色调颜色以通过 iOS 中的 Notes 应用程序共享

Posted

技术标签:

【中文标题】更改色调颜色以通过 iOS 中的 Notes 应用程序共享【英文标题】:Change tint color for sharing via Notes app in iOS 【发布时间】:2017-10-30 08:03:03 【问题描述】:

ios 11 上,如果用户在我的应用中通过 Notes 应用共享链接,则取消/完成按钮为白色(白色背景)。如何更改这些按钮的色调?

我正在分享这样的链接:

    let activityVC = UIActivityViewController(activityItems: [myShareUrl], applicationActivities: nil)
    presentViewController(activityVC, animated: true, completion: nil)

以下是当前的示例:

我也在 AppDelegate 中调整 NavTint 颜色,如下所示:

    UINavigationBar.appearance().shadowImage  = UIImage()
    UINavigationBar.appearance().barTintColor = .clearColor()
    UINavigationBar.appearance().tintColor    = .whiteColor()
    UINavigationBar.appearance().setBackgroundImage(
        UIImage(), forBarMetrics: UIBarMetrics.Default
    )

编辑

在展示UIActivityViewController之前,我尝试过这样设置色调颜色:

UIApplication.sharedApplication().keyWindow?.tintColor = UIColor.appRed()

虽然它适用于 iOS9,但不适用于 iOS11。

【问题讨论】:

我不认为你可以。这些按钮是 Notes 共享扩展的一部分。您不能对其他应用的扩展程序进行任何更改。 我不确定您是否看到在 iOS11 上通过 Notes 共享的样子,但是在我的左/右上方的图像中,有完成和取消之类的按钮,但它们是白色的。所以,是的,不知何故我可以改变色调。 你能举例说明这个笔记扩展的用户界面与上面截图中的不同吗? 给你:support.apple.com/library/content/dam/edam/applecare/images/… 没错。您提供的链接是 Notes Extension 的默认 UI。我不明白你是如何得到你在问题中作为屏幕截图附加的。 【参考方案1】:

在显示之前设置它

UIView.appearance().tintColor

然后在解雇后重置以恢复 - 即在activityViewController.completionWithItemsHandler

【讨论】:

以上是关于更改色调颜色以通过 iOS 中的 Notes 应用程序共享的主要内容,如果未能解决你的问题,请参考以下文章

更改全局色调颜色 - iOS 7/iOS 8

更改状态栏色调颜色

iOS 4 中的 UINavigationBar 色调颜色闪烁

通过整个应用程序更改导航项的颜色?

无法在 iOS 8 中将搜索栏色调更改为透明

全局更改 UINavigationBar 条的色调颜色