火遍安卓的下拉刷新框架 SmartRefresh 出 IOS 版了?

原创
2022/07/07 22:00
阅读数 15

安卓那边的开源库 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
header-delivery.gif header-material.gif
Refresh-your-delivery MaterialHeader
BezierRadar BezierCircle
header-radar.gif header-circle.gif
Pull To Refresh Pull Down To Refresh
FlyRefresh DropBox
header-fly.gif header-drop.gif
FlyRefresh DropBoxHeader
Phoenix Taurus
header-phoenix.gif header-taurus.gif
Yalantis/Phoenix Yalantis/Taurus
BattleCity HitBlock
header-game-tank.gif header-game-block.gif
FunGame/BattleCity FunGame/HitBlock
StoreHouse WaveSwipe
header-store.gif header-wave.gif
CRefreshLayout WaveSwipeRefreshLayout
Original Classics
header-original.gif header-classics.gif
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

```</smartrefreshcontrol>
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部