iOS UINavigationController、UITableViewController(普通和下拉刷新上拉加载)、UIViewController项目中的基类设计
我们在项目中经常会使用到导航、表格、以及下拉刷新上拉加载等功能,现在从整体结构上浅谈下项目结构设计
一、UINavigationController
系统的导航功能固然好用,但实际的情况是大部分场景UI效果并不能使我们满意,所以一般我们都会使用自定义导航
A、修改UINavigationBar,这种还是有很多局限性
B、使用View(NavigationView)完全自定义UINavigationBar,这种比较灵活
下面以B方案来实现
1、自定义UINavigationBar(使用View添加返回按钮、标题)
2、创建UIViewController基类BaseViewController,在基类上添加自定义导航
3、开启侧滑功能,使用三方库FDFullscreenPopGesture,该库可以完美解决转场效果以及可以实现全屏侧滑,可以使用该库功能隐藏系统的UINavigationBar
二、UITableViewController
1、表格
系统提供了该表格控制器,但我们基于后期的灵活配置以及可扩展性,最好使用以下方案
继承BaseViewController创建BaseTableViewController,在BaseViewController上添加UITableView即可
2、下拉刷新上拉加载更多
继承BaseTableViewController创建BaseRequestTableViewController,将三方库MJRefresh下拉刷新上拉加载功能集成上去即可
这样所有需要该功能的页面只需写少量业务代码即可(网络请求之类的)
如图所示