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下拉刷新上拉加载功能集成上去即可

这样所有需要该功能的页面只需写少量业务代码即可(网络请求之类的)

 如图所示

 

 参考资料:https://www.jianshu.com/p/62015b4c9076

posted @ 2022-07-21 11:21  小菜看代码  阅读(163)  评论(0编辑  收藏  举报