objective-c纯代码搭建抽屉项目(SWRevealViewController)
2015-12-18 17:00
447 查看
最近因项目需要,自己写了一个采用MVC模式的oc纯代码的抽屉模板,so总结分享一下。如果哪里有错误或者不正规的敌方还请各位大神指正。废话不多说,开始上干货。
1、新建项目准备工作
首先:删除launchScreen.storyboard 和Main.storyboard,并作相应的配置。
(1)在ASsets.xcassets下创建LaunchImage并设置对应的启动图
(2)进行一些必要的设置:
注意:如果没有选择launchImage或者在launchImage中缺少retian4的启动图,屏幕就会出现上下黑边。
(3)创建并配置pch文件:
创建:
配置:
其次:使用pod导入SWRevealViewController库、AFNetWorking库和MBProgressHD库
最后:搭建项目,项目的目录结构如下:
以上结构是本人习惯用的程序结构图,可以根据个人爱好来进行自行组织。这里只作一个推荐。
2、具体实现:
初始化抽屉:
NKNavigation设置导航栏的统一样式:
网网络类代码实现:
.h文件
.m..m具体实现
其余具体请求就不详细列举了。
基类的实现:继承NKNetWorkController类,实现抽屉效果
.h文件
.m文件
基础类之间的继承关系:
NKBaseController继承NKNetWorkController,使其具有网络请求的功能;
其他业务逻辑类继承NKBaseController,业务逻辑类就有了抽屉滑动效果和网络请求功能,并具有统一的样式。
3、细节调整
(1)创建UINavigationController的类别UINavigationController+NK,实现下面的方法
(2)在NKBaseController中根据actionType来决定当前frontController是否支持panGesture,遵守SWRevealViewControllerDelegate协议
4、demo效果图:
源代码地址:https://github.com/NickerZhang/NKSWRevealViewControllerTemplate
1、新建项目准备工作
首先:删除launchScreen.storyboard 和Main.storyboard,并作相应的配置。
(1)在ASsets.xcassets下创建LaunchImage并设置对应的启动图
(2)进行一些必要的设置:
注意:如果没有选择launchImage或者在launchImage中缺少retian4的启动图,屏幕就会出现上下黑边。
(3)创建并配置pch文件:
创建:
配置:
其次:使用pod导入SWRevealViewController库、AFNetWorking库和MBProgressHD库
最后:搭建项目,项目的目录结构如下:
以上结构是本人习惯用的程序结构图,可以根据个人爱好来进行自行组织。这里只作一个推荐。
2、具体实现:
初始化抽屉:
NKNavigation设置导航栏的统一样式:
网网络类代码实现:
.h文件
.m..m具体实现
其余具体请求就不详细列举了。
基类的实现:继承NKNetWorkController类,实现抽屉效果
.h文件
.m文件
基础类之间的继承关系:
NKBaseController继承NKNetWorkController,使其具有网络请求的功能;
其他业务逻辑类继承NKBaseController,业务逻辑类就有了抽屉滑动效果和网络请求功能,并具有统一的样式。
3、细节调整
(1)创建UINavigationController的类别UINavigationController+NK,实现下面的方法
(2)在NKBaseController中根据actionType来决定当前frontController是否支持panGesture,遵守SWRevealViewControllerDelegate协议
4、demo效果图:
源代码地址:https://github.com/NickerZhang/NKSWRevealViewControllerTemplate
相关文章推荐
- iOS Objective-C 中 bool 与 BOOL 的你不一定知道的事
- iOS开发之Objective-C打开一个网页
- OC(objective-c)_runtime运行时官方文档翻译 -- api 速查表
- 对MarshalByRefObject的讲解
- C# MarshalByRefObject 和Serializable的区别
- object-c 宏定义
- UVALive-3645 Objective: Berlin (最大流:时序模型)
- Objective-C中@property所有的属性详解
- getJSONObject与optJSONObject的区别,结合源码分析
- getJSONObject与optJSONObject的区别,结合源码分析
- Objective-C中的单例模式
- 从零开始学Objective-C(01)选择Objective-C之路
- [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
- Objective-C 协议
- Objective-C_语言_NSDate(时间类型)和NSCalendar(日历)NSTimeZone(时区)
- Objective-C 编码建议(编程习惯,规范)
- com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1问题出现的原因及解决办法
- 启动服务器时出现异常:com/opensymphony/xwork2/spring/SpringObjectFactory.java:209:-1 :
- Swift项目兼容Objective-C问题汇总
- 设备模型的基础---kobject,kset