如何在iOS 7和iOS 8上正确定制UITabBar和UITabBarItem?

如何在iOS 7和iOS 8上正确定制UITabBar和UITabBarItem?,第1张

概述我在这么多googling,但无处找到一个直接和综合的答案. 我想自定义myUITabBarController,使得: > UITabBar本身是完全黑色的 >项目标题的文本颜色为非突出显示状态的白色 >项目标题的文本颜色在突出显示状态为红色 >在标签栏中使用多彩图标 将UITabBar转黑 我猜想我需要使用UIAppearance API,实际上我可以使用以下方式转换UITbarBar黑色:[ 我在这么多googling,但无处找到一个直接和综合的答案.

我想自定义myUITabbarController,使得:

> UITabbar本身是完全黑色的
>项目标题的文本颜色为非突出显示状态的白色
>项目标题的文本颜色在突出显示状态为红色
>在标签栏中使用多彩图标

将UITabbar转黑

我猜想我需要使用UIAppearance API,实际上我可以使用以下方式转换UITbarbar黑色:[[UITabbar外观] setbarTintcolor:[UIcolor blackcolor]] ;.

2.和3.修改项目标题的颜色

然而,文本项目的颜色似乎没有做我想要的,在谷歌搜索之后,以下解决方案对我有意义,但它只将非突出显示的状态更改为白色,突出显示保持白色以及…

NSDictionary *TitleAttributes = @{NSForegroundcolorAttributename : [UIcolor whitecolor]};[[UITabbarItem appearance] setTitleTextAttributes:TitleAttributes forState:UIControlStatenormal];UIcolor *TitleHighlightedcolor = [UIcolor redcolor]; NSDictionary *highlightedTitleAttributes = @{NSForegroundcolorAttributename : TitleHighlightedcolor};[[UITabbarItem appearance] setTitleTextAttributes:highlightedTitleAttributes forState:UIControlStateHighlighted];

多彩多姿的物品

关于多彩多姿的图标,到目前为止的方法是简单地在Storyboards中设置图标,如下所示:

但是这并不是我想做的,只有在没有选择该项目的时候,它才会显示灰色的整个图标.当选择项目时,图标将完全消失.

这是原始图标:

这是当未选择项目时的外观:

而在这里它是被选定的,如所提到的图标完全消失:

所以我的问题是我能如何达到上述要求.我目前缺少什么?我最好在代码中做所有的事情,而不是在故事板中吗?

注意:我的目标是iOS版本大于7.0,因此如果iOS 7和iOS 8之间的行为有所不同,请包含任何特定于版本的信息.

解决方法 我和你有同样的问题.据我所知,不同的iOS版本没有区别.
我以编程方式解决了这个问题:

>转动条黑色作品如下(您已经说过)(在AppDelegate中):

UITabbar.appearance().barTintcolor = UIcolor.blackcolor()
>要设置不同状态的标题的颜色,我使用这个代码(在AppDelegate中):

UITabbarItem.appearance().setTitleTextAttributes([NSForegroundcolorAttributename!: UIcolor.redcolor()],forState:.Selected)UITabbarItem.appearance().setTitleTextAttributes([NSForegroundcolorAttributename!: UIcolor.whitecolor()],forState:.normal)

(和4.)通过以编程方式设置图像并将渲染模式(imageWithRenderingMode :)更改为UIImageRenderingMode.AlwaysOriginal,可以实现不同状态的不同项目颜色,多色图标和不同项目颜色,这看起来如下这在所有视图控制器的第一个视图控制器类中):

var recentsItem = self.tabbarController!.tabbar.items![0] as UITabbarItemvar recentsItemImage = UIImage(named:"recents.png")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)var recentsItemImageSelected = UIImage(named: "recentsSelected.png")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)recentsItem.image = recentsItemImagerecentsItem.selectedImage = recentsItemImageSelected

我希望这有助于,如果您有以下任何问题,请随时问我.

总结

以上是内存溢出为你收集整理的如何在iOS 7和iOS 8上正确定制UITabBar和UITabBarItem?全部内容,希望文章能够帮你解决如何在iOS 7和iOS 8上正确定制UITabBar和UITabBarItem?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1095154.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存