通过 UIActivityViewController 与 WhatsApp 共享时按钮中的文本颜色错误

Posted

技术标签:

【中文标题】通过 UIActivityViewController 与 WhatsApp 共享时按钮中的文本颜色错误【英文标题】:Wrong text color in buttons when sharing with WhatsApp via UIActivityViewController 【发布时间】:2017-06-20 10:08:01 【问题描述】:

当我使用 UIActivityViewController 向 WhatsApp 分享文本时,就我而言,分享的第二个屏幕按钮颜色错误。 第一个屏幕没问题。这个问题已经讨论过很多次了,在这里可以找到一大堆答案:Cannot set text color of Send and Cancel buttons in the mail composer when presented from the UIActivityViewController in ios7

答案为我修复了以下按钮颜色:

MFMailComposeViewController 和分享时的第一个屏幕 WhatsApp

但由于某种原因不是第二个。

这修复了第一个屏幕:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:[UIColor whiteColor]];

但即使设置所有 UIBarButtonItems 的外观也不行:

[[UIBarButtonItem appearance] setTintColor:[UIColor whiteColor]];

示例代码不起作用:

self.window?.tintColor = UIColor.white
let activityController = UIActivityViewController.init(activityItems: items, applicationActivities: nil)

if let vc = delegate?.currentViewController() 
    sender.isEnabled = false
    
    vc.present(activityController, animated: true, completion: 
        sender.isEnabled = true
    )
    activityController.navigationController?.navigationBar.tintColor = UIColor.white
    activityController.view.tintColor = UIColor.white

截图:

第一个屏幕:(确定)

第二个屏幕(不正常)

通过电子邮件共享(确定)

【问题讨论】:

***.com/a/47064914/3641812 的解决方案帮我解决了这个问题。 【参考方案1】:

只需尝试在您的Appdelegate 方法didFinishLaunchingWithOptions 中更改UIWindow 的tintColor。然后它将默认自动传递给它的所有 UIView 后代。

[self.window setTintColor:[UIColor whiteColor]];

希望这会对你有所帮助。

这也可能是第三方(覆盖)再次设置 tintColor 的问题。

【讨论】:

@SjoerdPerfors 这也可能是第三方的问题,它会覆盖此设置。

以上是关于通过 UIActivityViewController 与 WhatsApp 共享时按钮中的文本颜色错误的主要内容,如果未能解决你的问题,请参考以下文章

绑定: 通过 Binding 绑定对象, 通过 x:Bind 绑定对象, 通过 Binding 绑定集合, 通过 x:Bind 绑定集合

如何通过 Windows Azure 通过 GCM 通过唯一 ID 发送特定 Android 设备的通知?

下拉框多选框单选框 通过TagHelper绑定数据

酶:测试孩子通过安装渲染失败,但通过浅时通过

java是通过值传递,也就是通过拷贝传递——通过方法操作不同类型的变量加深理解

通过代码进行 Spring 配置与通过注释进行配置