![](/img/trans.png)
[英]Changing tint color of UIBarButtonItems in UIActivityViewController
[英]UIActivityViewController: tint color of presented view controllers
在应用程序中,我使用白色作为主色调颜色。 如果用户打开UIActivityViewController
,我将控制器的色调颜色设置为标准iOS蓝色。 这对于活动视图本身很有用,但是当想要发送邮件时,色调颜色不是蓝色而是白色。
有一种方法来设置呈现视图的色调颜色会很棒。 有吗?
打开MFMailComposeViewController
并将色调颜色设置为蓝色也会对显示的UIActionSheet
产生影响,如果从UIActivityViewController
打开MFMailComposeViewController
则不会这样。
有关说明,请参见屏幕截图: http : //i.imgur.com/OggykJF.png
编辑:这是我为UIActivityViewController
添加色调颜色所做的事情:
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:activities];
activityController.view.tintColor = [UIColor blueColor];
[self presentViewController:activityController animated:YES completion:nil];`
你可以做的最好的事情是在你呈现它之前将窗口的色调颜色设置为系统蓝色或你希望在UIActivityViewController上的任何色调颜色,然后在解除之前将窗口的色调颜色改回原始颜色。 那可行。 我是这样做的:
UIApplication.shared.keyWindow?.tintColor = Styles.color.systemBlue
然后
UIApplication.shared.keyWindow?.tintColor = Styles.color.tint
我遇到了同样的问题,无论我尝试什么,邮件共享控制器的取消和发送按钮都是蓝色的。 我发现调整导航栏外观并没有成功。 所以我用这个......
[[UIBarButtonItem appearance] setTintColor:tintColor];
我在一个“外观”类中执行此操作,该类在加载时调用并设置所有全局外观。 对于导航栏颜色,如果您需要在呈现共享控制器(UIActivityViewController)之前动态更改它,则可以在首次显示控制器时在完成块中执行此操作。 例如:
[self presentViewController:[self _shareController] animated:YES completion:^{
[[UINavigationBar appearance] setBarTintColor:[UIColor yourNavBarColor]];
}];
我根本没有设法让它工作,但是你考虑过替代方案 - 将文本保留为白色并更改导航栏背景颜色,以便它们显示出来,例如:
UINavigationBar.appearance().backgroundColor = .black
这似乎适用于Mail和Twitter共享屏幕的导航栏上的按钮。
在初始化之后但在呈现之前,在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];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.