1.项目部署
在oschaina中新建项目管理代码(免费,可以私有)
2.环境部署
设置启动图片,版本号等
3.项目结构搭建
-
让tabBar控制器成为窗口根控制器
-
为什么(一进界面能看到下面的导航条)
-
让多个导航控制器成为tabBar控制器的子控制器
-
为什么(让tabBar的每个子控制器都有导航条)
-
创建对应的ViewController成为导航控制器的子控制器
-
为什么(显示界面)
4.自定义tabBarVC
-
1.把添加子控制器的操作封装到tabBarVC内部
-
2.封装思想:自己的事情自己做,把要做的事情封装到内部去
5.设置tabBar内容
-
1.图片渲染
- 1️⃣纯代码,创建分类(好处:那张图片需要设置就调用方法)
- 2️⃣手动在图片资源库中找到对应的图片设置
-
2.字体的渲染
- 1️⃣找到对应的控制器设置tintColor
- 2️⃣在load方法中通过appearance修改(load方法只执行一次)
-
3.字体大小
- 1️⃣使用appearance
- 2️⃣为什么(UIAppearance能修改特定属性)
- 3️⃣必须遵守UIAppearance协议,实现协议方法
- 4️⃣如果通过appearance设置属性,必须要在显示之前设置
6.实现百思样式TabBar
-
1.在对应的tabBar的tabBarButton中添加按钮
-
2.为什么:系统的按钮不能满足需求
-
3.让对应的tabBarButton点击失效
-
4.为什么:添加上去的按钮不能点击
7.抽取UIBarButtonItem
-
1.为什么:直接添加按钮,点击范围会扩大
-
2.把按钮添加到UIView中,然后封装成BarButtonItem
8.处理导航条内容
-
1.根据对应的导航控制器确定左右中间内容
-
2.根据对应的navigation确定具体按钮,内容
9.处理导航条标题/背景图片
-
1.创建导航控制器分类,在load方法中用Appearance设置
-
2.为什么:创建该类型的导航控制器,方便统一管理
10.设置返回按钮
修改按钮的内边距,改变内部控件位置,但超出部分不能点击
11.自定义导航条
-
1.为什么:调整按钮位置也能点击
-
2.在自定义导航条的loyoutsubview方法拦截按钮的父控件V,修改位置
12.统一设置返回按钮
-
1.在push方法中拦截非根控制器
-
1️⃣用子控制器个数判断
-
2️⃣为什么:用指定的角标会有角标越界问题
-
3️⃣push方法执行完,子控制器的数组才有值
-
2.隐藏tabBar
13.滑动返回
-
1.思想
- 1️⃣自定义返回按钮时,系统干了什么
- 2️⃣手势
- 3️⃣代理
-
2.办法
- 1️⃣把系统的滑动代理设置成导航控制器
- 2️⃣为什么:自己管理系统的代理方法
- 3️⃣监听手势在非根控制器时才触发 shouldReceiveTouch
- 4️⃣为什么:根控制器不能有滑动返回,不然会假死
14.全局滑动返回
-
1.创建一个拖动手势
-
2.让创建的手势使用系统自带的滑动返回方法
-
3.获取系统滑动功能的对象和方法
网友评论