乐趣区

关于开源框架:火遍安卓的下拉刷新框架-SmartRefresh-出-IOS-版了

安卓那边的开源库 SmartRefresh 之所以能火,我集体感觉是因为 SmartRefresh 汇集了各种优质刷新款式于一身,对款式的切换非常简单,还不必思考更换款式之后的兼容性稳定性问题,在 SmartRefresh 呈现之前 github 上也有各种个样优良款式的刷新,然而切换的老本比拟高,危险也高;同时他能一个框架集成各种格调的款式,也阐明它的扩展性十分强,即便找不到适宜本人的款式,也能够通过自定义款式来解决。

那么当初我带来了一个好消息,IOS 版本 SmartRefreshControl 终于公布了!

github: 我的项目地址
gitee: 我的项目地址 (国内速度快)

简介

SmartRefreshControl 是 SmartRefreshLayout 的 IOS 版,和 Android 版在 理念 外观 下面保留雷同的设计,然而因为 Android 和 IOS 两个零碎的差异,IOS 版本在性能应用和个性上与安卓版有所差异。刷新控件应用 ObjectiveC 语言编写,演示 DemoApp 应用 Swift 语言编写。

目前 SmartRefreshControl 性能还不是很弱小,也不太稳固,只是在界面层面实现了安卓版的性能。欢送大家来体验与发现 BUG,不举荐应用在正式我的项目中。

由来

大学毕业后我大部分工夫从事安卓开发,在安卓版 SmartRefresh 大火之后,我开始转型 IOS 开发。到当初曾经有三年的 IOS 开发教训,因为 IOS 上也还未有像 SmartRefresh 一样同一个开源库多种外观款式的刷新库,也想坚固本人所学的 IOS 技能,我决定在空闲之余把安卓 SmartRefresh 复刻到 IOS 平台来。通过一年多的致力总算初步实现了。

成果展现

Delivery Material
Refresh-your-delivery MaterialHeader
BezierRadar BezierCircle
Pull To Refresh Pull Down To Refresh
FlyRefresh DropBox
FlyRefresh DropBoxHeader
Phoenix Taurus
Yalantis/Phoenix Yalantis/Taurus
BattleCity HitBlock
FunGame/BattleCity FunGame/HitBlock
StoreHouse WaveSwipe
CRefreshLayout WaveSwipeRefreshLayout
Original Classics
FlyRefresh ClassicsHeader

如果须要体验下面列出的各种刷新头,须要克隆 git 源码,用 Xcode 编译运行 Demo 我的项目即可。

简略用例

1. 在 Podfile 中增加依赖


pod 'SmartRefreshControl', '~> 0.1.0'

2. 在 ViewController 中增加刷新控件


#import <SmartRefreshControl/SmartRefreshControl.h>

@interface DemoTableViewController ()

@property (strong, nonatomic) IBOutlet UITableView *tableView;  
@property (strong, nonatomic) UIRefreshBezierRadarHeader *header;  

@end

@implementation DemoTableViewController

- (void)viewDidLoad {[super viewDidLoad];
    
    // 形式 1: 初始化同时绑定事件
    [self setHeader:[UIRefreshBezierRadarHeader attach:self.tableView target:self action:@selector(onRefresh)]];

    // 形式 2: 先初始化,再绑定事件
    [self setHeader:[UIRefreshBezierRadarHeader attach:self.tableView]];
    [self.header addTarget:self action:@selector(onRefresh)];

    // 形式 3: 先创立,再绑定
    [self setHeader:[UIRefreshBezierRadarHeader new]];
    [self.header attach:self.tableView];
    [self.header addTarget:self action:@selector(onRefresh)];

}

@end

3. 增加刷新监听事件


@implementation DemoTableViewController

- (void)onRefresh {[self.header finishRefresh]; // 敞开刷新,能够改成申请网络,胜利 / 失败之后再敞开刷新
}

@end
退出移动版