swift版 https://github.com/targetcloud/TGRefreshSwift
OC版 https://github.com/targetcloud/TGRefreshOC
纯代码,开题报告,没有用XIB
IMG_2202.PNG (320.05 KB, 下载次数: 5)
下载附件
2017-6-27 01:52 上传
IMG_2203.PNG (392.7 KB, 下载次数: 5)
下载附件
2017-6-27 01:52 上传
IMG_2205.PNG (875.25 KB, 下载次数: 5)
下载附件
2017-6-27 01:52 上传
效果
Features
支持链式编程配置,开题报告,程序员的最爱
支持两种刷新结果提示
支持QQ和Common两种下拉刷新样式
支持contentInset
支持Cocoapods
支持MJRefresh到TGRefresh风格切换,只需要把mj_header改为tg_header,改动2个字母即可
支持4种配置方式,Ordinary、Simple、Senior、Recommend,推荐使用Recommend配置
支持刷新结果回显配置
支持刷新结果成功或失败配置
超轻量级、使用超灵活、功能超强大
用例丰富,快速上手
Usage以下tv均指tableview或UIScrollview类型
首先写上这一句
import TGRefreshSwift如果需要,在你的控制器中加上一句
self.automaticallyAdjustsScrollViewInsets=falseQQ效果(常用、一句话)self.tv.tg_header = TGRefreshSwift.refresh(self, #selector(loadDataSenior))
普通效果self.tv.tg_header = TGRefreshSwift.refresh(self, #selector(loadDataSenior)){(refresh) in refresh.tg_kind(.Common) }
更多配置,使用链式编程配置 self.tv.tg_header = TGRefreshSwift.refresh(self, #selector(loadDataSenior)){(refresh) in refresh.tg_refreshResultBgColor(UIColor.orange.withAlphaComponent(0.8)) .tg_fadeinTime(2) .tg_verticalAlignment(.Midden) .tg_fadeoutTime(1) .tg_bgColor(UIColor(white:0.8,alpha:1)) }
扩展用法
除了传入数据加载事件、配置信息外,还可以传入刷新控件的初始高度(默认40)与背景图
self.tv.tg_header = TGRefreshSwift.refresh(self, #selector(loadDataSenior),44,UIImageView(image: UIImage(named: 'profile_cover_background')) ){(refresh) in refresh.tg_refreshResultBgColor(UIColor.orange.withAlphaComponent(0.8)) .tg_verticalAlignment(.Midden) .tg_tinColor(UIColor.white) .tg_tipLabelFontSize(13) .tg_resultLabelFontSize(15) .tg_tipFailStyle(.tipInfoWhite) .tg_tipOKStyle(.tipOKWhite) .tg_fadeinTime(1) .tg_fadeoutTime(0.5) .tg_bgColor(UIColor(white:0.8,alpha:1)) }开始刷新self.tv.tg_header?.beginRefreshing()
(网络请求等情况得到数据后)结束刷新self.tv.tg_header?.endRefreshing()
结束刷新时的回显//示例代码DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()+2) { let isSuccess = arc4random_uniform(3) % 2 == 0 let count = isSuccess ? arc4random_uniform(20)+1 : 0 self.dataCount = count>0 ? Int(count) : self.dataCount self.tv.tg_header?.refreshResultStr = count>0 ? '成功刷新到\(count)条数据,来自TGRefreshSwift' : '请先在Github上Star本控件:-)' self.tv.tg_header?.isSuccess = isSuccess isSuccess ? self.tv.reloadData() : () self.tv.tg_header?.endRefreshing() }
可以配置的属性/** 刷新失败时的提示图标 */public var tipStyle:TGTipStyle = .tipInfoGray /** 刷新成功时的提示图标 */public var tipOKStyle: TGOKTipStyle = .tipOKNormal /** 忽略初始的InsetTop,用于刷新控件所画的位置进行定位 */public var ignoreScrollViewContentInsetTop: Bool = false /** 各元素间边界 */public var margin: CGFloat = 10 /** 类型,默认为QQ弹簧 皮筋效果 */public var kind: TGRefreshKind = .QQ /** 主题色(状态提示文字颜色(不包含结果提示)、ActivityIndicator颜色、橡皮筯颜色) */public var tinColor : UIColor = .gray /** 背景色 */public var bgColor: UIColor?/** 垂直对齐,默认顶部 */public var verticalAlignment: TGRefreshAlignment = .Top /** 是否显示刷新成功或失败 */public var isShowSuccesOrFailInfo: Bool = true /** 是否刷新成功 在第二次刷新前自动置为true */public var isSuccess: Bool = true /** 刷新失败时的提示文字 */public var refreshFailStr: String = '刷新失败' /** 刷新成功时的提示文字 */public var refreshSuccessStr: String = '刷新成功' /** 准备刷新时的提示文字 */public var refreshNormalStr: String = '下拉可以刷新' /** 即将刷新时的提示文字 */public var refreshPullingStr: String = '松开立即刷新' /** 正在刷新时的提示文字 */public var refreshingStr: String = '正在刷新数据中...' /** 更新结果的回显文字 */public var refreshResultStr: String = '' /** 更新结果的回显背景色 */public var refreshResultBgColor: UIColor = UIColor.gray.withAlphaComponent(0.8) /** 更新结果的回显文字颜色 */public var refreshResultTextColor: UIColor = .white /** 更新结果的回显高度 */public var refreshResultHeight: CGFloat = 34 /** 自动改变透明度,默认已做优化 */public var automaticallyChangeAlpha: Bool = false /** 回显时的渐显时间 0.1 ~ 2秒 默认0.5 */public var fadeinTime: CGFloat = 0.5 /** 回显时的渐隐时间 0.1 ~ 5秒 默认1.5 */public var fadeoutTime: CGFloat = 1.5 /** 提示文字字体大小 9 ~ 20 默认11 */public var tipLabelFontSize: CGFloat = 11 /** 结果文字字体大小 9 ~ 20 默认12 */public var resultLabelFontSize: CGFloat = 12
使用链式编程配置时,请在所有属性前加tg_前缀即可