MFMailComposeViewController的导航栏颜色与完美匹配不上

4
我已经尝试了几乎所有存在的解决方案来更改我的MFMailComposeViewController的navigationBar颜色,但它并没有显示出确切的颜色。
这是我的viewController导航栏颜色: enter image description here 经过定制所有解决方案后,最接近的一个是此图像: enter image description here 我在代码中漏掉的东西是什么?请看一下。
MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];

mc.mailComposeDelegate = self;
[mc.navigationBar setTintColor:[UIColor whiteColor]];
[mc setSubject:[NSString stringWithFormat:@"V%@ Support", version]];
[mc setMessageBody:supportText isHTML:NO];
[mc setToRecipients:@[@"ring@ringid.com"]];
[self presentViewController:mc animated:YES completion:NULL];

我尝试了以下操作:

mc.navigationBar.translucent = NO;
[mc.navigationBar setTintColor:[UIColor myColor]];
mc.navigationBar.backgroundColor = [UIColor myColor];
UIImage *image = [UIImage imageNamed:@"nav-bar_6_plus.png"];
[mc.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

但是没有运气。
提前感谢。

你可能遇到了导航栏半透明的问题。你可以尝试将mc.navigationBar.translucent设置为YES或NO(取决于你想要的外观)。 - Mayur Shrivas
抱歉提及此事。是的,我总是将mc.navigationBar.translucent设置为NO。但颜色没有显示相同。:( - Tulon
1
我也遇到了同样的问题。我在实例化之前设置了颜色,但导航栏的颜色比应该的浅。 - user1940321
我有同样的问题,有没有人有解决方案? - Arpit B Parekh
2个回答

3
这对我很有帮助:
在Swift 3.0中
    UINavigationBar.appearance().isTranslucent = false

设置UINavigationBar的外观能够解决我的问题。

0

我认为这是因为如果您调用

[self.navigationController.navigationBar setTranslucent:NO];

导航栏会变成透明,所以应该这样解决。


是的。我用 mc.navigationBar.translucent = NO; 进行了检查。 请查看更新的帖子。但是颜色不一样。 - Tulon

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