All Projects → targetcloud → TGRefreshSwift

targetcloud / TGRefreshSwift

Licence: MIT License
弹簧、橡皮筋下拉刷新控件,类似QQ下拉刷新效果,同时支持其他样式

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to TGRefreshSwift

Tgrefreshoc
弹簧、橡皮筋下拉刷新控件,类似QQ下拉刷新效果,同时支持其他样式
Stars: ✭ 149 (+198%)
Mutual labels:  refresh, elastic
logiq
Monitoring Web UI for Elastic Logstash
Stars: ✭ 34 (-32%)
Mutual labels:  elastic
elastalert-tutorial
Get started with Elastalert from Yelp
Stars: ✭ 27 (-46%)
Mutual labels:  elastic
indicator-xkbmod
Simple Ubuntu keyboard modifiers indicator
Stars: ✭ 16 (-68%)
Mutual labels:  indicator
Power-Refresh-VBScript
Visual Basic Script Refresher for Excel files with Power Query and PowerPivot model
Stars: ✭ 18 (-64%)
Mutual labels:  refresh
MagiRefresh
swift版下拉刷新,支持多种样式,同时支持,加载动画,网络错误占位(有兴趣学习如何用swift使用runtime的可以看看)
Stars: ✭ 25 (-50%)
Mutual labels:  refresh
next-eui-starter
Start building Kibana protoypes quickly with the Next.js EUI Starter
Stars: ✭ 74 (+48%)
Mutual labels:  elastic
indicado
Technical indicator library for Elixir with no dependencies.
Stars: ✭ 15 (-70%)
Mutual labels:  indicator
prevent-pull-refresh
[ABANDONED] Preventing the pull-to-refresh effect browser on mobile
Stars: ✭ 18 (-64%)
Mutual labels:  refresh
icingabeat
Elastic Beat fetching events & status from Icinga 2
Stars: ✭ 36 (-28%)
Mutual labels:  elastic
seahorse
ELKFH - Elastic, Logstash, Kibana, Filebeat and Honeypot (HTTP, HTTPS, SSH, RDP, VNC, Redis, MySQL, MONGO, SMB, LDAP)
Stars: ✭ 31 (-38%)
Mutual labels:  elastic
react-native-elastic-image-slider
react-native-elastic-image-slider
Stars: ✭ 18 (-64%)
Mutual labels:  elastic
react-native-viewpager-indicator
修改自react-native-scrollable-tab-view,增加了根据文字内容适配下划线长度的功能。
Stars: ✭ 52 (+4%)
Mutual labels:  indicator
kafkabeat
Elastic Beat for fetching events from Kafka
Stars: ✭ 23 (-54%)
Mutual labels:  elastic
elastic-apm-agent
Elastic Application Performance Monitoring (APM) agent for PHP
Stars: ✭ 48 (-4%)
Mutual labels:  elastic
swiftype-wordpress
Elastic Site Search (Swiftype) Wordpress Plugin for full-text search
Stars: ✭ 26 (-48%)
Mutual labels:  elastic
kibana-keycloak
Secure kibana dashboards using keycloak
Stars: ✭ 40 (-20%)
Mutual labels:  elastic
KJNetworkPlugin
🎡A lightweight but powerful Network library. Network Plugin, Support batch and chain operation. 插件版网络架构
Stars: ✭ 43 (-14%)
Mutual labels:  refresh
elastic-apm-agent-php
Elastic APM agent for PHP
Stars: ✭ 37 (-26%)
Mutual labels:  elastic
XLRefresh
iOS 下拉刷新工具
Stars: ✭ 25 (-50%)
Mutual labels:  refresh

TGRefreshSwift

下拉刷新控件,含弹簧、橡皮筋样式(类似QQ下拉刷新控件,但比QQ 更强),同时支持其他样式,可DIY刷新前中后各状态下的动画...

Swift Build License MIT Platform Cocoapod

OC Version

https://github.com/targetcloud/TGRefreshOC

Recently Updated

  • 0.0.6 加入了刷新前动画样式选择,目前共支持刷新前、刷新中、刷新后的失败或成功4种状态下的动画特效,全网最强
  • 0.0.5 删除了成功和失败时的指示图标,全部换成了指示动画,支持刷新成功和失败时分别设置动画类型和颜色,系统指示器也换成自定义指示器,共三种状态指示器供设置,动画类型也多达35种,配置参数目前支持27个
  • 0.0.4 增加了稳定性
  • 0.0.1 TGRefreshOC版本的增强版本,更多参数配置

Features

  • 支持刷新前、中、后各种状态时的动画特效设置,DIY你满意的一款
  • 支持链式编程配置,程序员的最爱
  • 支持两种刷新结果提示
  • 支持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=false

QQ效果(常用、一句话)

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_kind(.Common)
                .tg_tinColor(UIColor.green)
                .tg_fadeinTime(1)
                .tg_fadeoutTime(0.5)
                .tg_verticalAlignment(.Midden)
                .tg_indicatorRefreshingStyle(.lineCursor)
                .tg_indicatorNormalStyle(.lineOrderbyAsc)
                .tg_bgColor(UIColor(white:1,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(12)
                .tg_resultLabelFontSize(13)
                .tg_tipFailStyle(.ballScale)
                .tg_tipOKStyle(.ballScale)
                .tg_indicatorRefreshingStyle(.orbit)
                .tg_fadeinTime(1)
                .tg_fadeoutTime(0.5)
                .tg_bgColor(UIColor(white:0.5,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()
        }

可以配置的属性(共28个)

/** 刷新中的指示器类型 */
public var indicatorRefreshingStyle: TGIndicatorType = .lineCursor
    
/** 刷新前的指示器类型 */
public var indicatorNormalStyle: TGIndicatorType = .lineOrderbyAsc
    
/** 刷新失败时的提示器样式 */
public var tipFailStyle: TGIndicatorType = .ballScaleMultiple
    
/** 刷新失败时的提示器颜色 */
public var tipFailColor: UIColor = .red
    
/** 刷新成功时的提示器样式 */
public var tipOKStyle: TGIndicatorType = .ballScaleMultiple
    
/** 刷新成功时的提示器颜色 */
public var tipOKColor: UIColor = .green
    
/** 忽略初始的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


TGIndicatorType可供选择的动画类型有
.ballPulse
.ballGridPulse
.ballClipRotate
.squareSpin
.ballClipRotatePulse
.ballClipRotateMultiple
.ballPulseRise
.ballRotate
.cubeTransition
.ballZigZag
.ballZigZagDeflect
.ballTrianglePath
.ballScale
.lineScale
.lineScaleParty
.ballScaleMultiple
.ballPulseSync
.ballBeat
.lineScalePulseOut
.lineScalePulseOutRapid
.ballScaleRipple
.ballScaleRippleMultiple
.ballSpinFadeLoader
.lineSpinFadeLoader
.triangleSkewSpin
.pacman
.ballGridBeat
.semiCircleSpin
.ballRotateChase
.orbit
.lineCursor
.squareGridPulse
.squarePulse
.windows
.lineOrderbyAsc
.audioEqualizer

使用链式编程配置时,请在所有属性前加tg_前缀即可

更多使用配置组合效果请download本项目或fork本项目查看

运行效果

demo中的弹簧效果

Installation

  • 下载并拖动TGRefreshSwift到你的工程中

  • Cocoapods

pod 'TGRefreshSwift'

Reference

如果你觉得赞,请Star

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].