自定义 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 【问题描述】:我在一个项目中,我需要创建自定义 UINavigationBar
和 UITabBar
。
我的问题在于物品的颜色(色调!)。
我不希望我的物品有任何色调。我试图把它变成清晰的颜色,但这只会让它消失(它变得透明)。
所以,概括地说,我有我自己的酒吧物品图像,它们每个都包含自己特定的颜色。我已经读过,为了做我想做的事,我必须继承我的UIBar
s,但我没有比这更多的信息。我应该在我的子类中修改什么以摆脱该色调颜色约束?谢谢。
编辑: 色调颜色不应用于项目,但应用于栏(所以所有项目)。所以我的问题是我想要我的物品有特定的颜色
编辑 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
只接受不符合initWithCustomView
的UITabBarItem
。所以我还在那里泡菜……
【问题讨论】:
我不明白,去掉颜色不就等于透明吗?你可以试试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
只接受不符合initWithCustomView
的UITabBarItem
。所以我还在那里泡菜……
【讨论】:
以上是关于自定义 iOS UINavigationBar/UITabBar 并移除 Tint Colors的主要内容,如果未能解决你的问题,请参考以下文章