自定义 iOS UINavigationBar/UITabBar 并移除 Tint Colors

Posted

技术标签:

【中文标题】自定义 iOS UINavigationBar/UITabBar 并移除 Tint Colors【英文标题】:Custom iOS UINavigationBar/UITabBar and removing Tint Colors 【发布时间】:2014-01-30 11:34:46 【问题描述】:

我在一个项目中,我需要创建自定义 UINavigationBarUITabBar。 我的问题在于物品的颜色(色调!)。 我不希望我的物品有任何色调。我试图把它变成清晰的颜色,但这只会让它消失(它变得透明)。

所以,概括地说,我有我自己的酒吧物品图像,它们每个都包含自己特定的颜色。我已经读过,为了做我想做的事,我必须继承我的UIBars,但我没有比这更多的信息。我应该在我的子类中修改什么以摆脱该色调颜色约束?谢谢。

编辑: 色调颜色不应用于项目,但应用于栏(所以所有项目)。所以我的问题是我想要我的物品有特定的颜色

编辑 2: 好吧,我想我明白了!解决方法是使用UIBarButtonItem方法:initWithCustomView:

UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
backBtn.bounds = CGRectMake( 0, 0, 26, 26);
[backBtn setImage:[UIImage imageNamed:@"BackBtn.png"] forState:UIControlStateNormal];
[backBtn addTarget:self.navigationController action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:backBtn];
self.navigationItem.leftBarButtonItem = item;

但这仅适用于UINavigationBar,因为它需要UIBarButtonItem。另一方面,UITabBar 只接受不符合initWithCustomViewUITabBarItem。所以我还在那里泡菜……

【问题讨论】:

我不明白,去掉颜色不就等于透明吗?你可以试试whiteColor吗? 不透明意味着色调颜色将是透明的,因此形成图像的内容(线条)将变得透明。换句话说,图像将变得透明(因此即使图像存在,也不会出现任何内容) 【参考方案1】:

这个问题是前段时间提出的,但我在谷歌上找到了它,所以其他人也可能找到它:)

答案就是用这个方法 UITabBarItem(title:, image:, selectedImage:)

图像始终开启原始渲染模式

image.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

希望有帮助!

【讨论】:

【参考方案2】:

好的,我想我明白了!解决方法是使用UIBarButtonItem方法:initWithCustomView:

UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
backBtn.bounds = CGRectMake( 0, 0, 26, 26);
[backBtn setImage:[UIImage imageNamed:@"BackBtn.png"] forState:UIControlStateNormal];
[backBtn addTarget:self.navigationController action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:backBtn];
self.navigationItem.leftBarButtonItem = item;

但这仅适用于UINavigationBar,因为它需要UIBarButtonItem。另一方面,UITabBar 只接受不符合initWithCustomViewUITabBarItem。所以我还在那里泡菜……

【讨论】:

以上是关于自定义 iOS UINavigationBar/UITabBar 并移除 Tint Colors的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义百度地图的定位图标 ios

iOS 自定义TabBarController

IOS 自定义控件

iOS13及以下版本修改自定义Tabbar的分割线颜色等属性

iOS自定义数字键盘

ios11 Swift 自定义导航条上移20点解决方法