swift 自定义(超简单)上拉加载(gif动画)
2016-09-18 13:18
288 查看
针对swift 2.0
使用上拉加载,通常用于tableview,或者collectionview等继承scrollview的视图
实现上拉加载,思路非常简单,就是判断,当前的视图的容量与当前的currentOffset的关系。
精确点就是:offset.y + bounds.size.height - inset.bottom 与 size.height的关系
其具体为:
如果 currentOffset >= maximumOffset +50 那么就开始刷新数据,其中50 是自己可根据需要改变的拉伸常量。
当我们进行上拉加载的时候回看到加载动画,例如MJRefresh的菊花等,这个完全可以自己写,而且十分简单。方法如下
当我们触发上拉加载的时候可以进行网络数据的请求,这个时候在整个视图的最上面一层添加一个view,view上是你要添加的动画,可以是任意的。
如图:
这里使用定时器,代替网络请求:
使用上拉加载,通常用于tableview,或者collectionview等继承scrollview的视图
实现上拉加载,思路非常简单,就是判断,当前的视图的容量与当前的currentOffset的关系。
精确点就是:offset.y + bounds.size.height - inset.bottom 与 size.height的关系
其具体为:
var offset = scrollView.contentOffset var bounds = scrollView.bounds var size = scrollView.contentSize var inset = scrollView.contentInset var currentOffset: CGFloat = offset.y + bounds.size.height - inset.bottom var maximumOffset: CGFloat = size.height
如果 currentOffset >= maximumOffset +50 那么就开始刷新数据,其中50 是自己可根据需要改变的拉伸常量。
当我们进行上拉加载的时候回看到加载动画,例如MJRefresh的菊花等,这个完全可以自己写,而且十分简单。方法如下
当我们触发上拉加载的时候可以进行网络数据的请求,这个时候在整个视图的最上面一层添加一个view,view上是你要添加的动画,可以是任意的。
如图:
这里使用定时器,代替网络请求:
if currentOffset >= maximumOffset+50 { self.view.addSubview(refreshView) refreshView.frame = self.view.frame refreshView.backgroundColor = UIColor.init(colorLiteralRed: 0, green: 0, blue: 0, alpha: 0.2) var path = NSBundle.mainBundle().pathForResource("catLittle", ofType: "gif")! var gifData = NSData(contentsOfFile: path) var webView = UIWebView(frame: CGRectMake(self.view.frame.size.width/2-100, self.view.frame.size.height/2-100, 200, 200)) self.view.addSubview(webView) webView.layer.masksToBounds = true webView.layer.cornerRadius = 5 webView.scalesPageToFit = true webView.scrollView.scrollEnabled = false webView.backgroundColor = UIColor.clearColor() webView.opaque = false webView.loadData(gifData!, MIMEType: "image/gif", textEncodingName: "", baseURL: NSURL.init()) refreshView.addSubview(webView) self.AFNTimer = NSTimer.scheduledTimerWithTimeInterval(2.5, target: self, selector: "refreshData", userInfo: nil, repeats: false) }
相关文章推荐
- android自定义加载数据动画dialog和简单的timer计时器
- Flex :自定义Loading载入状态(含图标) 及解决Flex中GIF动画图片加载时显示动起来
- Android自定义一个简单的动画加载页面
- 自定义View时,用到Paint Canvas的一些温故,简单的帧动画(动画一 ,"掏粪男孩Gif"顺便再提提onWindowFocusChanged)
- 自定义View时,用到Paint Canvas的一些温故,简单的帧动画(动画一 ,"掏粪男孩Gif"顺便再提提onWindowFocusChanged)
- Swift实现一个简单的加载动画,以及动画的详解
- Android 自定义SurfaceView实现加载GIF动画
- 自定义Loading载入状态(含图标) 及解决Flex中GIF动画图片加载时显示动起来
- Flex :自定义Loading载入状态(含图标) 及解决Flex中GIF动画图片加载时显示动起来
- Android上拉刷新下拉加载XRefreshView集成以及自定义GIF动画
- 用Adobe ImageReady制作简单GIF动画
- 在VC程序中加载GIF动画
- 在VC程序中加载GIF动画
- iOS 简单的播放gif动画
- android dialog去白色边框,设置边框大小,加载gif动画
- 在VC程序中加载GIF动画(转载)
- Silverlight自定义加载动画系列
- 在VC程序中加载GIF动画
- iPhone开发【十三】动画效果之最简单的动画——动态加载图片
- Android Graphics 学习(1)----播放gif动画简单的实现