一.广告界面业务逻辑
1.什么时候进入广告界面(程序启动完成的时候,进入广告界面)
为什么?程序启动的时候,我们没有办法处理,苹果没有提供对应API.
2.设置窗口根控制器为广告控制器
为什么?一开始想显示谁,就设置谁为窗口根控制器,因为窗口在显示的时候,会自动把根控制器的view添加窗口
二.搭建广告界面
1. 理清楚界面层次结构(3层:启动图片界面,广告界面,按钮)
2.占位视图思想:当层次结构清楚,但是某一层还不确定内容,可以采取占位视图,搞一个UIView占这个位置,这个UIView占据整个父控件尺寸,颜色设置为透明色
占位视图思想:当一个界面层次结构清楚,但是某些层不确定,可以采用占位视图
3.启动图片:为什么广告界面要弄一个启动图片,欺骗用户一直在启动,从而顺其自然插入广告
3.1 屏幕适配:每个屏幕设置对应的启动图片
3.2 根据屏幕高度去做屏幕适配 (4:489 5:568 6:667 7:736),定义宏,为什么:方便读代码
4.界面结构固定,可以用xib来描述,界面结构不固定,或界面内容不确定,要用代码来描述
5.第三方框架管理 为什么使用cocoapods?
cocoa pods:2014火
cocoapods:管理第三方框架,怎么管理
cocoapods:会自动导入依赖库
cocoapods工作原理:首先在工程文件中使用podfile,podfile(描述好,当前工程需要第三方框架) ,pod install 就会自动帮你导入这个框架
// 使用cocoapods步骤: 命令行
// 1.在当前工程文件中,创建podfile(pod init)
// 2.打开podfile描述下需要导入框架
// 3.怎么知道描述,pod search AFN
// 4.pod install
三.加载广告数据
1.AFN加载数据
2.cocoapods导入AFN
3.查看接口文档(完整url:基本url+请求参数,请求方式)
4.验证接口,查看服务器返回数据
5.AFN真正发送请求
5.1 支持http 修改ATS属性
5.2 服务器返回响应头写错(text/html),导致AFN不能响应
修改AFN怎么修改?
查看别人做了什么事情 : 跳方法
查看这个类有哪些功能 : 跳类
5.3 自定义AFN响应对象,专门解析当前app的响应数据
//创建管理者
AFHTTPSessionManager*manager = [AFHTTPSessionManagermanager];
// 自定义AFN响应者对象
AFJSONResponseSerializer*responseSerializer = [AFJSONResponseSerializerserializer];
responseSerializer.acceptableContentTypes= [NSSetsetWithObject:@"text/html"];
manager.responseSerializer= responseSerializer;
6.解析数据(写成plist)
为什么要写成plist文件? 为了方便我们读取数据的层次结构,分析数据解析的方法
7.设计模型(界面需要什么数据,就定义什么数据)
8.字典转模型 (MJExtension)
9.把模型显示到界面上
怎么做?
9.1 在cell里面定义模型属性来接收模型数据
9.2 在cell里面定义要接收数据的属性
9.3 重写模型属性的set方法
9.4 给需要接收数据的参数赋值
10.点击广告跳转
10.1 怎么设计?
想要点击做一些事情,可以添加点按手势
10.2 手势添加给谁?
我们想要点击广告图片跳转到广告界面 点按手势可以添加给图片
10.3 在哪里添加点按手势(写代码)?
在AFN发送网络请求成功时,我们可以拿到图片 在这里写代码
10.4 怎么跳转界面(打开URL)?
可以利用[[UIApplicationsharedApplication]openURL:URL];
注意:在打开url之前要做一次判断:[[UIApplication sharedApplication] canOpenURL:URL];
11.广告倒计时
11.1 为什么要做广告倒计时?
为了方便用户不看广告,直接跳过广告
11.2 怎么做?
可以利用_timer= [NSTimerscheduledTimerWithTimeInterval:1.0target:selfselector:@selector(timeChange)userInfo:nilrepeats:YES];
11.3 计时器声明时候结束?
当计时器读秒为0 的时候结束 结束之后就要跳转到主界面
11.4 怎么判断读秒?
给按钮设置一个广告时间 一般以秒为单位, 计时器每工作一次,时间就减1秒
11.5 注意: 跳转主界面的时候,计时器就没用了,一定要关闭定时器
11.6 怎么跳转界面?
跳转界面方法: modal push 设置窗口根控制器
modal push方法,广告界面控制器不会销毁 一直存在 消耗内存
设置窗口跟控制器会把之前的控制器销毁
[UIApplicationsharedApplication].keyWindow.rootViewController= tabBarVC;
总结:
1.每个界面开发流程:1.搭建界面 2.请求数据(1.查看接口文档) 3.解析数据(设计模型) 4.字典转模型 5.把模型展示到界面上
网友评论