如何设置Xamarin iOS导航和状态栏颜色

che*_*ana 3 xcode xamarin.ios ios xamarin

我是Xamarin iOS Designer的新手,我正在尝试设置状态栏和导航控制器背景颜色,如下例所示:https://www.youtube.com/watch?v = DApI7aWGNiY

我在Xcode Interface Builder中打开了我的主要故事板,并按照教程中的步骤向appDelegate.m添加代码.代码如下:

#import "AppDelegate.h"
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >>    16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary   *)launchOptions
{

[[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x067AB5)];

return YES;
}

@end
Run Code Online (Sandbox Code Playgroud)

以上似乎不起作用 - 当我在Xamarin中保存和构建时,状态和导航栏仍然是灰色的.

我想知道为什么以及它是否与项目是在Xamarin而不是Xcode中创建的事实有关.我的.m文件与示例不同,它位于"支持文件"文件夹中,并且不包含任何自动生成的代码.在Xcode Interface Builder上似乎有更好的文档,这就是我使用它而不是新的Xamarin iOS Designer的原因.

Xamarin Studio 5.1.3和Xcode 5.1.1有什么提示吗?谢谢!

**更新:通过添加此功能,可以在状态和导航栏上实现背景颜色更改.NavigationController.NavigationBar.BarTintColor = UIColor.Yellow; 紧接着我的viewcontroller.cs base.ViewDidLoad ();.仍然想知道为什么代码添加到Xcode项目.m文件不会在Xamarin构建中呈现.

Nic*_*ers 15

如果要在整个iOS应用中更改导航栏颜色,请将其添加到AppDelegate FinishedLaunching方法中:

UINavigationBar.Appearance.BarTintColor = UIColor.YourColor;
Run Code Online (Sandbox Code Playgroud)

您还可以通过执行以下操作来编辑导航栏的文本属性:

UINavigationBar.Appearance.SetTitleTextAttributes(new UITextAttributes { TextColor = UIColor.White });
Run Code Online (Sandbox Code Playgroud)

至于状态栏,如果要将状态栏图标更改为白色而不是默认黑色,例如,为导航控制器创建一个类并覆盖UIStatusBarStyle

public override UIStatusBarStyle PreferredStatusBarStyle ()
{
     return UIStatusBarStyle.LightContent;
}
Run Code Online (Sandbox Code Playgroud)

这适用于您的NavigationController及其任何子控制器.


Mor*_*ner 7

我终于让它在Xamarin Forms中工作,所以在博客上发表了这篇文章,详见http://morganskinner.blogspot.co.uk/2015/01/xamarin-forms-light-status-bar-for-ios.html.我还有一个关于为导航栏设置背景图像的后续帖子,并让它也适用于Landscape - 请参阅http://morganskinner.blogspot.co.uk/2015/01/xamarin-formsusing-background-images-on .html.希望这有助于其他人!