01-项目搭建

1.项目部署

在oschaina中新建项目管理代码(免费,可以私有)

2.环境部署

设置启动图片,版本号等

3.项目结构搭建

  1. 让tabBar控制器成为窗口根控制器

  2. 为什么(一进界面能看到下面的导航条)

  3. 让多个导航控制器成为tabBar控制器的子控制器

  4. 为什么(让tabBar的每个子控制器都有导航条)

  5. 创建对应的ViewController成为导航控制器的子控制器

  6. 为什么(显示界面)

4.自定义tabBarVC

  • 1.把添加子控制器的操作封装到tabBarVC内部

  • 2.封装思想:自己的事情自己做,把要做的事情封装到内部去

5.设置tabBar内容

  • 1.图片渲染

  1. 1️⃣纯代码,创建分类(好处:那张图片需要设置就调用方法)
  2. 2️⃣手动在图片资源库中找到对应的图片设置
  • 2.字体的渲染

  1. 1️⃣找到对应的控制器设置tintColor
  2. 2️⃣在load方法中通过appearance修改(load方法只执行一次)
  • 3.字体大小

  1. 1️⃣使用appearance
  2. 2️⃣为什么(UIAppearance能修改特定属性)
  3. 3️⃣必须遵守UIAppearance协议,实现协议方法
  4. 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.获取系统滑动功能的对象和方法

你可能感兴趣的:(01-项目搭建)