iOS开发 - 第05篇 - 项目 - 03 - 版本新特性 & OAuth授权

来源:互联网 发布:德国世家知乎 编辑:程序博客网 时间:2024/04/28 23:57

1、版本新特性


1.1 界面


程序第一次启动的时候会弹出新特性界面,之后启动不会出现。






1.2 实现思路


1> 新建一个HWNewfeatureViewController(继承自UIViewController)

2> 先将其设置为整个程序的根控制器,用于演示

3> 使用UIScrollView




4>添加UIPageControl




5> 设置UIScrollView代理,监听滚动,设置UIPageControl




2、控制器切换


2.1 一个View中显示其他控制器的View


新建一个HMTestViewController(继承自UITableViewController),放上测试数据,再将其添加到另一个控制器的View中




1:上述代码并不会将HMTestViewController的测试数据显示到当前控制器的View中,原因:HMTestViewController创建好后是局部变量,代码执行完就销毁,尽管HMTestViewControllerView会被添加到当前控制器的View中,但是数据源代理是HMTestViewController,已被销毁,因此没有人给tabView提供数据!

2:解决办法:强指针引用HMTestViewController

3:如果发现控制器的view还在,但是view上面的数据不显示,极大可能是因为控制器被提前销毁了

4:若一个控制器销毁,但是其View还没有被销毁,会非常危险!!!因为一个控制器通常用来监听View的事件,一旦控制器被销毁,View需要处理事件的时候就会造成坏内存访问!!!


2.2 控制器切换界面




点击不同按钮,可以切换不同的控制器显示在同一个View上


2.3 实现思路


1> 懒加载三个控制器,设置每个控制器的View的frame

2>点击按钮,添加到View中,注意先移除之前的View,防止一直添加




2.4 类似应用




1:一个控制器的view是可以随意调整尺寸和位置的

2:一个控制器的view是可以随意添加到其他view

3:如果将一个控制器的view,添加到其他view中显示,那么要想办法保证控制器不被销毁

4:原则:只要view在,view所在的控制器必须得在,这样才能保证view内部的数据和业务逻辑正常


3、-568h@2x图片的加载


第1节版本新特性,启动显示全屏图片的屏幕适配问题!

1:只适用于启动时的全屏图片加载!




Universal:iPhone和iPad,这里可以取消!

2:只有全屏的图片需要关注屏幕适配问题,其他像按钮图片可以通过拉伸来解决!


4、tabBar的使用注意 --- 重要




5、按钮的使用细节


5.1 界面


版本新特性最后一页




5.2 实现思路








注:EdgeInsets

contentEdgeInsets:会影响按钮内部的所有内容(imageViewtitleLabel)

titleEdgeInsets:只影响按钮内部的titleLabel

imageEdgeInsets:只影响按钮内部的imageView


6、控件看不见的可能




7、新版本判断






新特性最后一页,点击开始微博




8、OAuth授权


8.1 基本概念


OAuth(开放授权)是一个开放标准。

允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息。而这种授权无需将用户提供用户名和密码提供给该第三方网站。

OAuth允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定的时间内访问特定的资源。

参考网址:点击打开链接    点击打开链接








8.2 加载登录界面








注:需要修改AFN源代码(支持响应头)




0 0
原创粉丝点击