• 《iOS第三方框架》



    基础项目框架代码,本项目包含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 类目的计划,因为这是应用程序应处理的逻辑,而不是这个库。

  • 相关阅读:
    Linux的find命令
    Shell环境变量文件
    Spring事务配置的五种方式 巨全!不看后悔,一看必懂!
    高性能C++网络库libtnet实现:Connection
    log4j的一些配置
    MySQL的表分区
    MySQL中的datetime与timestamp比较
    如何成为一名优秀的web前端工程师
    双机热备份
    MySQL错误“Specified key was too long; max key length is 1000 bytes”的解决办法
  • 原文地址:https://www.cnblogs.com/cx2016/p/13150771.html
Copyright © 2020-2023  润新知