【问题标题】:How to customize iOS UINavigationItem?如何自定义 iOS UINavigationItem?
【发布时间】:2015-05-05 08:19:03
【问题描述】:

我想这是重复的,但经过研究我无法理解如何自定义UINavigationItem

我有自定义ViewController (VC),它实现了自定义类SWRevealViewController(我需要创建滑动菜单)。 我有Menu VC,对于菜单的每个元素我都有Navigation VC,对于菜单的每个元素都有自定义VC

要使用每个后退按钮,必须在 Designer 中定义并具有出口(我还为 navigation item 添加了出口):

@property (weak, nonatomic) IBOutlet UIBarButtonItem *btnSidebareMenu;
@property (weak, nonatomic) IBOutlet UINavigationItem *niTitle;

在我的.m 文件中,我有这个代码:

self.navigationItem.title = @"Custom title";

self.navigationController.topViewController.navigationItem.leftBarButtonItem = self.btnSidebareMenu;
self.btnSidebareMenu.enabled=TRUE;
self.btnSidebareMenu.style=UIBarButtonSystemItemRefresh;

为每个Menu element VC自定义按钮和标题。

我使用此代码来管理菜单导航:

// Manage menu button
SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController )
{
    [self.btnSidebareMenu setTarget: self.revealViewController];
    [self.btnSidebareMenu setAction: @selector( revealToggle: )];
    [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}

导航正常,但我无法自定义导航栏的外观:

我收到这个:

,但我需要这样的东西:

有什么建议吗?

编辑:

好的,我设法显示适当大小的图像,以更改导航栏的颜色,但我无法使用 status barnavigation bar。当我设置navigation bar 的背景颜色时,它也会填充status bar。我看到了不同的解决方案,但它们不起作用或我不理解它们。

备注:我有几页不属于Navigation controller,其中我的status bar 是白色的。我的所有页面也需要这种情况。 (我需要它们看起来像图 2,其中状态栏为白色,导航部分为蓝色)。

【问题讨论】:

  • 如果你想改变每个屏幕上的导航栏背景颜色...然后转到导航控制器..点击导航栏并转到属性检查器并设置 BarTintColor。

标签: ios objective-c uinavigationbar uinavigationitem


【解决方案1】:

用它来改变图标的​​颜色:

    self.navigationController.navigationBar.tintColor = [UIColor redColor];

应用于导航项和栏按钮项的色调颜色。

【讨论】:

【解决方案2】:

对于导航栏按钮,我想您可以使用storyBoardbarButtonItem 拖放到导航栏中。然后可以设置barButtonitemimage属性。

另请注意,您使用的图像应该是精确的尺寸,因为它不会按比例缩放。因此,如果您的图片名为sandwich.png,那么您的资产中应该有以下两个文件:

  1. sandwich.png - 22x22 像素
  2. sandwich@2x.png - 44x44 像素

另请参阅thisthis

更新:要使图标变为白色或任何其他颜色,您可以更改情节提要中barButtonItem 的色调。

【讨论】:

  • 10 倍,@ShahiM。我了解图像大小 - 这仍然不是正确的尺寸图像。我还需要我的图像是白色的(因为它的原始颜色是白色)。
  • @new2ios。行。编辑答案。让我知道是否缺少任何东西。欢呼
  • @new2ios。您正在使用故事板对吗?如果是的话,最好在不使用代码的情况下进行尽可能多的 UI 设计。 IE。在故事板本身中。这会减轻你的工作量。
猜你喜欢
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多