iPhone SDK 3.0 应用内电子邮件 - 更改导航栏色调颜色

Posted

技术标签:

【中文标题】iPhone SDK 3.0 应用内电子邮件 - 更改导航栏色调颜色【英文标题】:iPhone SDK 3.0 in-app email - changing navigation bar tint color 【发布时间】:2009-06-27 04:46:07 【问题描述】:

我的应用使用 iPhone SDK 3.0 的新应用内电子邮件功能。

我想将电子邮件 UI 的色调更改为黑色并使其半透明。

我尝试了以下代码,

/*
picker.navigationController.navigationBar.tintColor = [UIColor blackColor];
picker.navigationController.navigationBar.translucent = YES ;
*/

但它改变了创建视图的颜色,

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];

撰写窗口,而不是撰写窗口本身。

这至少可能吗?还是我们应该坚持苹果自己提供的蓝色???

【问题讨论】:

【参考方案1】:

由于 MFMailComposeViewController 是 UINavigationController 的子类,只需这样做:

[[picker navigationBar] setTintColor:[UIColor redColor]];

【讨论】:

【参考方案2】:

iPhone Human Interface Guidelines 不禁止使用自定义颜色,但推荐使用标准颜色(蓝色和黑色)。

【讨论】:

【参考方案3】:

是的,这是可能的。

只需在覆盖drawInRect 方法的UINavigationBar 类中添加一个objective-c 类别。 这样你就可以做到。

缺点,你所有的导航栏都会改变:)

【讨论】:

不确定您的应用是否会获得批准。 这对苹果来说没问题。这正是我在我的应用程序中所做的(实际上,是 UINavigationBar 的子类),并且它得到了 Apple 的批准(官方 Dave Matthews Band 应用程序)。截取drawInRect: 来实现自定义UINavigationBar的外观没有错。【参考方案4】:

[[picker navigationBar] setTintColor:[UIColor blackColor]];

....使取消和发送按钮也变黑。它们不是蓝色的,按下时不会改变颜色。

【讨论】:

【参考方案5】:

你也可以试试这个代码....

MFMailComposeViewController *mailComposeView = [[MFMailComposeViewController alloc] init];
mailComposeView.navigationBar.tintColor = [UIColor cyanColor];

【讨论】:

以上是关于iPhone SDK 3.0 应用内电子邮件 - 更改导航栏色调颜色的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone SDK 3.0 中链接静态库

在一个可执行文件中使用 iPhone OS 3.0 功能(如果可用)和 2.1 功能(如果不可用)

MAP 与 iPhone 3.0 SDK 一起使用都有哪些限制?

为 iPhone 4 SDK 构建的 Blocks 在部署到 iPhone OS 3.0 时可以工作吗?

uiview 动画过去可以在 iphone sdk 2.2 上运行,现在它不能在 sdk 3.0 上运行

Iphone SDK:在 iphone 应用程序的后台发送电子邮件