基础项目框架代码,本项目包含AFNetworking、Masonry、YYKit、MJRefresh、MBProgressHUD、SDWebImage、IQKeyboardManager、SDCycleScrollView、FDFullscreenPopGesture第三方框架
https://github.com/chuzhaozhi/BaseProject
2016-02-05
第三方框架
- 简书第三方框架 1. 常用第三方的底层实现原理 (SDWebImage AFNetworking EGORefresh) 其实是有沙盒缓存机制,主要由三块组成 1. 内存图片缓存 2....
第三方框架
1. 常用第三方的底层实现原理 (SDWebImage AFNetworking EGORefresh)
其实是有沙盒缓存机制,主要由三块组成
1. 内存图片缓存
2. 内存操作缓存
3. 磁盘沙盒缓存
4. 列举一下常用的第三方框架
答:我在做开发的过程中曾经用过以下第三方框架:
(1)AFNetworking 网络请求库
(2)SDWebImage 网络图片加载
(3)FMDB 数据库
(4)Masonry 自动布局
(5)UmengSDK/Share SDK 分享
(6) 融云 / 环信 即时通信
(7)ZBar/ZXing 二维码扫描和生成
(8)MBProgressHUD 风火轮
(9)GTMBase64 base64 编码解码
(10)MJRefresh 下拉刷新,上拉加载
(11) 百度 / 高德地图 SDK
5.MJRefresh 原理
答:给 UISCrollView 添加了分类,在分类中,根据 scrollView 的 contentOffset 进行判断方向和偏移量,当偏移量到某一个临界值的时候,开始切换 header 或者 footer 的状态,以呈现不同的 UI,当偏移量大于临界值并松开手的时候, 执行 block 回调或者 target..action 的方法, 主要在 block 或者 target..action 中进行网络请求,请求结束后,调用 endRefresh 方法,再次更改 header 或者 footer 的状态,使他们回到初始状态
关于常用的手码约束的第三方框架
有 Masonry 和 UIView+Autolayout
框架地址是:
https://github.com/Masonry/Masonry
https://github.com/smileyborg/UIView-AutoLayout
UIView+Autolayout 框架
这个相对于 masonry,是个轻量级的框架易于上手,里面一共也就两个文件。也非常好用,都是用 auto 开头。适用于约束不经常改变的项目
Masonry 框架
这个框架是重量级的里面好多文件,难于上手,但是用熟练了的话比上面那个牛 X,适合于约束要经常改变的项目。
写出常用的第三方框架
Reachability 检测网络连接用来检查网络连接是否可用:包括 WIFI 和 WWAN(3G/EDGE/CDMA 等) 两种工作模式。
MBProgressHUD 提示效果 支持各种状态加载的提示效果,以及带进度的提示效果。
SDWebImage 图片异步加载及缓存 SDWebImage 用于异步下载网络上的图片,并支持对图片的缓存等。
XMPP 现在做个实时聊天,XMPP 协议算是很成熟的方案了。XMPPFramework 一个很不错的选择,可以直接和 OpenFire 服务器打交道。
AFNetworking 网络请求
FMDB 数据库
Masonry 纯代码添加约束
iOS 知名第三方框架和流行 APP 们所用的第三方框架小结
http://www.mamicode.com/info-detail-935799.html
6) 不使用第三方, 如何做下拉刷新, 加载
UITableView 本身是一个 UIScrollView,所以 UITableView 可以实现 UIScrollView 的代理方法。上拉和下拉刷新无非是 UIScrollView 偏移到一定程度调用刷新方法。 实现 - (void)scrollViewDidScroll:(UIScrollView*)scrollView 代理方法即可。
http://www.open-open.com/lib/view/open1390609384992.html
http://doc.okbase.net/ZeroHour/archive/119346.html
UITableView 是继承 scrollview 的,当你下拉结束的时候会走 scrollview 的回调,scrollViewDidEndDragging,然后在这个回调中,可以判断是否达到下拉的位置,然后做你该做的处理,比如刷新列表,加载数据等等
23.AFNetworking 内部实现原理
http://www.th7.cn/Program/IOS/201503/405717.shtml
40.AFNetworking 新版本和以前版本的区别,NSURLSession 使用
(1)NSURLConnection 的 API 已废弃
弃用的类
下面的类已从 AFNetworking 3.0 中废弃:
•AFURLConnectionOperation
•AFHTTPRequestOperation
•AFHTTPRequestOperationManager
修改的类
下面的类包含基于 NSURLConnection 的 API 的内部实现。他们已经被使用 NSURLSession 重构:
•UIImageView+AFNetworking
•UIWebView+AFNetworking
•UIButton+AFNetworking
(2)AFHTTPRequestOperation 核心代码
与 NSURLConnection 对象不同,每个共享应用范围的设置如会话管理、缓存策略、Cookie 存储以及 URL 协议等,这些 NSURLSession 对象都可以单独进行配置。使用特定的配置来初始化会话,它可以发送任务来获取数据,并上传或下载文件。
在 AFNetworking 2.0 中,使用 AFHTTPRequestOperation,有可能创建一个没有额外开销的独立的网络请求来获取数据。NSURLSession 则需要更多的开销,为了获得所要请求的数据。
(3)UIKit 的迁移
图片下载已经被重构,以遵循 AlamofireImage 架构与新的 AFImageDownloader 类。这个类的图片下载职责的代理人是 UIButton 与 UIImageView 的类目,并且提供了一些方法,在必要时可以自定义。类别中,下载远程图片的实际方法没有改变。
UIWebView 的类目被重构为使用 AFHTTPSessionManager 作为其网络请求。
UIAlertView 的类目被废弃
从 AFNetworking 3.0 后 UIAlertView 的类目因过时而被废弃。并没有提供 UIAlertController 类目的计划,因为这是应用程序应处理的逻辑,而不是这个库。