首页 > 代码库 > [IOS]你用过原生的 UIRefreshControl 吗?
[IOS]你用过原生的 UIRefreshControl 吗?
第三方太过于强大,上拉刷新,下拉刷下,左边,右边,各种刷新,
先介绍几个第三方:
JHRefresh: https://github.com/Jiahai/JHRefresh
可以自定义动画的上、下拉刷新,Demo效果类似大众点评的动画效果,动画是帧动画实现的
那就自备图片组吧 ~ ~ ~
MJRefresh: https://github.com/CoderMJLee/MJRefresh
用法比较简单,同时支持TableView、CollectionView:详情见 github 连接
AAPullToRefresh: https://github.com/r-plus/AAPullToRefresh
前面的上拉、下拉,这个可以左拉、右拉,好神奇的东西
TMOTableView: https://github.com/duowan/TMOTableView
当小伙伴们上拉刷新时,这个的特色是支持点击自动加载,是不是很
人性化。。。。。。 XXX ~~
当然还有历史久远的。。。貌似元老级的东西。。。
EGOTableViewPullRefresh: https://github.com/enormego/EGOTableViewPullRefresh
说了强大的第三方后,原生的 UIRefreshControl 变消失与人际。。。
陌陌独自哭泣吧。。。。但是有时我们不要那么强大只要简单的下拉刷新呢。。。
就扯点 UIRefreshControl 的故事。。。
首先,它只能在TableView 下使用,而且你会在 UITableViewController 里发现
具体的使用代码:
self.refresh = [[UIRefreshControl alloc]init]; NSLog(@"%.2f %.2f",self.refresh.frame.size.width,self.refresh.frame.size.height); self.refresh.tintColor = [UIColor blueColor]; self.refresh.attributedTitle = [[NSAttributedString alloc]initWithString:@"下拉刷新"];; [self.refresh addTarget:self action:@selector(RefreshViewControlEventValueChanged) forControlEvents:UIControlEventValueChanged]; [self.tableView addSubview:self.refresh];
<pre name="code" class="objc">- (void)RefreshViewControlEventValueChanged{ NSLog(@"Refresh XXXX"); dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // [loadingImageView removeFromSuperview]; [self.refresh endRefreshing]; }); }
跳到头文件会发现,里面的东西少的可怜,UIRefreshControl 的 frame 开始也是默认的,一般也是由它依赖的控制器或View
来控制,一般是UITableViewController 或TableView, 当下拉时会广播一个 UIControlEventValueChanged 通知
我们可以拿来搞的也就 这么多。。。。。
我们可不可以自定义图片,实现类似果库的下拉动画
发现一个可以加图片的办法,然后找到如下代码,但是系统的那个动画会在图片中间
loadingImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"loading"]]; loadingImageView.center = CGPointMake(187.5, 40); [self.refresh insertSubview:loadingImageView atIndex:0]; [self.refresh bringSubviewToFront:loadingImageView];
差不多也该吃饭了。。。找到随后补上吧。。。 Y_Y ~
[IOS]你用过原生的 UIRefreshControl 吗?