如何改变MFMailComposeViewController文本和按钮图像的颜色?

9

iOS在MFMailComposeViewController中使用标准(蓝色)的色调来呈现所有带颜色的文本。但是我的客户想要在应用程序中使用公司的颜色,这对我来说并不好。如何将它们的颜色更改为橙色?

我特别询问按钮图标(添加图片和铃铛图像)以及包含邮件地址的文本的颜色。我已经更改了导航栏颜色。在文档中,写道:

此类的视图层次结构是私有的,您不得修改它。但是,您可以使用UIAppearance协议自定义实例的外观。

我尝试过使用它,但它没有起作用(可能我做错了,因为我不知道UIAppearance)。这是我尝试过的内容:

        [[UIButton appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];

        [[UILabel appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setTextColor:[UIColor orangeColor]];

enter image description here


2
使用tintColor可以这样写:mailComposerViewController.view.tintColor = [UIColor whiteColor] - Sandeep
MFMailComposeViewController没有可用的属性tintColor。 - Reconquistador
抱歉,我的意思是视图,请查看上面的编辑。 - Sandeep
颜色未被改变。 - Reconquistador
你想要改变导航栏内部的文本颜色还是视图内部的文本颜色? - Sandeep
我已经添加了图片以使其更清晰。 - Reconquistador
2个回答

1

我也遇到了这个问题。只需使用:

UIView.appearance().tintColor = .orange

这个功能很好,但是存在一个缺陷。当编辑时,接收者的文本会变回系统tintColor(蓝色)。

1

在那篇文章中,只提到如何更改导航栏文本的颜色,这是我已经做过的事情。 - Reconquistador
是的,你说得对。你试过了吗?[[UINavigationBar appearance] setTintColor:[UIColor redColor]]; - Bisca
我不需要改变UINavigationBar的外观,因为它已经被改变了。 - Reconquistador

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接