美文网首页
TabBar - 学习记录

TabBar - 学习记录

作者: degulade | 来源:发表于2016-03-04 02:13 被阅读1244次

今天接触到TabBar这个控件,感觉好神奇!不知道是干嘛的,正好现在就边学变记录吧。

从模仿开始:

还是先上图,新浪微博的TabBar如下:


实现类似微博的选项卡(Tab Bar)

如图,最下方的TabBar中共有五个选项,分别是首页、消息、加号、发现、我。现在来实现这个效果。

Step1:图标素材

不建议百度(广告太多,而且出来的素材网站质量真心不怎么样)。有问题,想得到比较有价值的回答,去知乎里搜索一下吧。
言归正传,关于素材资源,推荐看看知乎的这个关于素材网站推荐的话题,很棒!

为了模仿得更像,我找了一些比较相似的图标。下载好素材,设置要格式,上传到项目中:

长传图片到APP中
iOS的图标尺寸有点奇怪,我也不太懂,找了一些帖子,都是很老的了。但是幸好还是在简书上找了一篇很不错的文章,关于iOS APP图标的尺寸说明可以点这里。
Step2:添加并设置Tab Bar Controller

今天之前,我还一直不明为什么人家的storyboard里面那么多的Scene,而且还都连接着一个Controller,到底是怎么搞出来的!
直到......刚刚我亲自拖了一个TabBarController到storyboard中......恍然大悟......妈蛋,原来这么方便简单。

在storyboard中删除原来的ViewController,重新拖入一个TabBarController

因为一个TabBarController默认自带了只有两个ViewControllerScene,所以我继续添加了三个。然后分别对每个Scene的TabBarItem进行设置:

对每个TabBarItem进行设置

TabBarController的总视图:


main.storyboard

设置完成后,运行,如图:

模拟器运行图
Step3:解决图标选中时默认蓝色的BUG

这里出现了一个BUG:明明我设置的按下时(_pressed)的图片是橙色才对,但是这里显示的是蓝色。
为什么会有出现这个BUG呢,求助了google。原因是:TabBar的图片默认会被系统渲染,也就是说,当点击这个TarBar的image时,默认会把它渲染蓝色,所以需要调用imageWithRenderingMode这个方法来取消渲染属性:

//取消对TabBarItem的渲染,使用图片的原图
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal

这里有点麻烦,为每个TabBarItem的Scene建立相应的类,并绑定:

为每个Scene绑定对应的类
Step4:最后一步:设置属性方法
为每个Scene对应的类添加这段代码(即取消渲染,使用原图)

搞定!!!选中TabBar时,图标的颜色正常显示(即显示的原图):


最终效果

ps:这张图和第一张图有点不一样啊!但是没关系了,大致上就是这个思路了。
今天学的深奥的东西不多,但是又学会了一个很实用的控件,再接再厉吧!感觉自己的设计感开始慢慢在up了!

相关文章

网友评论

      本文标题:TabBar - 学习记录

      本文链接:https://www.haomeiwen.com/subject/xwcokttx.html