【TabBar嵌套Navigation案例-自定义tabBar-封装 Objective-C语言】
一、再来说一个自定义tabbar的问题啊,

1.首先呢,这个tabbar,看起来好像效果是实现了,没有什么问题,但是说,从业务逻辑上来讲的话,这样做,是不太好的,
1)首先,我们去创建啊,我们自定义的一个UIView,

UIView里边,有很多子控件,那么这个子控件,应该是写在你这个View里边的,你创建的时候,应该是在View里边的,不应该在外面,在Controller里面去创建控件,这样做是不对的,包括你的点击事件啊,都应该抽出来一个,这个tabbar啊,这个UIView,

2)我们应该自定义一个UIView,然后把里面的一部分代码,都应该写到这个UIView里面,才行,理解我的意思吗,就跟那个tabbarController一样啊,你去加载,你给tabbarController去加载子控制器,

那么,你创建子控制器啊,加载子控制器啊,这些话,都应该写在tabbarController里边,
下面也是一样的,你给tabbar,给我自定义的某一个UIView,去添加5个btn,那么,这5个btn的创建,也应该在这个UIView里面,
2.所以,这个时候呢,我们新建一个View,
在主框架的View文件夹里面,我们去新建一个UIView,

继承的是UIView,叫做HMTabBar,
那么,接下来啊,我们就要抽啊,抽,实际上,说白了,就是把这里边的这一坨代码,剪切到这个HMTabBar里边,

你抽东西的时候,怎么着去抽,你假如说,有一个功能,可能抽的时候,感觉不好写,那么,你就先用这种方式,实现了,

然后,再一个一个往里去搬,
1)我们需要先把这个btn的创建,放到这个里边,

先来看看,btn都做了哪些事情,我们看看这坨代码,都做了哪些事情,
1)首先,我创建了5个btn,
2)然后,每一个btn,给它设置了frame,

这一段儿代码,就是在设置frame,所以这一段儿代码,我应该写在layoutSubview里面,
因为我要设置它子控件的布局,
所以呢,我现在,第一,这个btn,我设置了frame,
2)然后,第二件事儿,我给它设置了图片,

3)第三件事儿,我监听了这个btn,

4)第四件事儿,点击这个btn的时候,我把控制器给切换一下,

我现在做了这四件事儿,
然后呢,我一件一件的往里放,就行了,
1)首先,我创建btn的时候,这一句话,应该写在tabbar里边,

我现在呢,要给tabbar写一个方法,只要我一调这个方法,它就能够帮我自动的创建btn、自动的帮我去设置图片、自动的帮我去监听这个btn,
都在这一个方法里边去写,
这个时候,我现在在HMTabBar.h里边,先来写这么一个方法,
- (void)addButtonWith
我现在要把这两张图片,一块儿去传过来,
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956994.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!