UIActivityViewController:呈现的视图控制器的色彩

tri*_*ger 10 xcode objective-c ios swift

在应用程序中,我使用白色作为主色调颜色.如果用户打开UIActivityViewController,我将控制器的色调颜色设置为标准iOS蓝色.这对于活动视图本身很有用,但是当想要发送邮件时,色调颜色不是蓝色而是白色.

有一种方法来设置呈现视图的色调颜色会很棒.有吗?

打开a MFMailComposeViewController并将色调颜色设置为蓝色也会对显示产生影响UIActionSheet,如果MFMailComposeViewController从内部打开则不会产生影响UIActivityViewController.

有关说明,请参见屏幕截图:http://i.imgur.com/OggykJF.png

编辑:这是我为添加色调颜色所做的UIActivityViewController:

UIActivityViewController

Pet*_*ger 6

您能做的最好的事情就是在呈现窗口之前将窗口的色调颜色设置为系统蓝色或您希望在 UIActivityViewController 上设置的任何色调颜色,然后在关闭窗口之前将窗口的色调颜色更改回原始颜色。那可行。我就是这样做的:

UIApplication.shared.keyWindow?.tintColor = Styles.color.systemBlue
Run Code Online (Sandbox Code Playgroud)

进而

UIApplication.shared.keyWindow?.tintColor = Styles.color.tint
Run Code Online (Sandbox Code Playgroud)


vij*_*esh -2

在初始化之后、呈现之前设置 UIActivityViewController 上的tintColor。

UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:activities];

//Set the tint color on just the activity controller as needed here before presenting
[activityController.view setTintColor:[UIColor blueColor]];

[self presentViewController:activityController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)