[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];

然后判断只能继承重写UIRefreshControl ,然后又变复杂了。。 。

差不多也该吃饭了。。。找到随后补上吧。。。 Y_Y  ~

时间: 2024-08-02 13:39:20

[IOS]你用过原生的 UIRefreshControl 吗?的相关文章

ios网络学习------11 原生API文件上传之断点续传思路

#import "MainViewController.h" @interface MainViewController () @end @implementation MainViewController - (void)viewDidLoad { [super viewDidLoad]; //下载文件 [self download]; } -(void)download { //1. NSURL NSURL *url = [NSURL URLWithString:@"ht

构建针对 iOS 和 Android 的原生扩展

第一部分:音量控制入门 http://www.adobe.com/cn/devnet/air/articles/building-ane-ios-android-pt1.html 第二部分: 开发 ActionScript 库 http://www.adobe.com/cn/devnet/air/articles/building-ane-ios-android-pt2.html 第三部分: 构建 iOS 库 http://www.adobe.com/cn/devnet/air/articles

转--iOS下JS与原生OC互相调用

iOS下JS与原生OC互相调用 引言 一直听说WKWebView比UIWebView强大许多,可是一直没有使用到,今天花了点时间看写了个例子,对其API的使用有所了解,为了日后能少走弯路,也为了让大家更容易学习上手,这里写下这篇文章来记录如何使用以及需要注意的地方. 温馨提示:本人在学习使用过程中,确实有此体会,WKWebView的确比UIWebView强大很多,与JS交互的能力显示增强,在加载速度上有所提升. WKWebView新特性 性能.稳定性.功能大幅度提升 允许JavaScript的N

iOS下JS和原生交互,函数互调

现在越来越多的APP都是H5和原生混合开发,这样确实方便快捷,但是H5的部分总避免不了很多与原生的交互,原生调JS函数还比较简单,原生的API函数stringByEvaluatingJavaScriptFromString就可以完成需求,但是JS调原生的函数,系统没有提供API,所以很多人公司都采用标记位的形式完成,我们公司的也不例外,项目开发了很久,原生和JS交互一直是我负责,我们项目这块也要大量的交互操作,随便版本迭代,问题也越来越多,然后就想了很多办法去解决这个问题. 一,我原本的方案,拦

iOS:下拉刷新控件UIRefreshControl的详解

下拉刷新控件:UIRefreshControl 1.具体类信息: @interface UIRefreshControl : UIControl //继承控制类 - (instancetype)init; @property (nonatomic, readonly, getter=isRefreshing) BOOL refreshing; //是否可以刷新 @property (nonatomic, retain) UIColor *tintColor; //控件颜色 @property (

IOS下移除按钮原生样式 -webkit-appearance

IOS环境下的按钮都是经过美化的,但通常我们在设计web app的时候不需要这些看上去老土的样式,所以,去除这些显得很有必要. 下面这句代码就是重置这些样式的: -webkit-appearance: none;可以去掉iOS input自带的阴影边框 通常,我们在写移动端的web开发时,会zaicommon.css中添加以下CSS代码来: input[type=button]{ -webkit-appearance:none; outline:none } 嗯,就这些,虽简单,但很实用!

IOS下移除按钮原生样式

IOS环境下的按钮都是经过美化的,但通常我们在设计web app的时候不需要这些看上去老土的样式,所以,去除这些显得很有必要. 下面这句代码就是重置这些样式的: -webkit-appearance: none;

ios网络学习------10 原生API文件上传

使用原生态的api上传文件的实现: #import "MainViewController.h" @interface MainViewController () @property (weak, nonatomic) UIImageView *imageView; @end @implementation MainViewController - (void)viewDidLoad { [super viewDidLoad]; //定义Imageview并设置图像 UIImage *

iOS通过openURL打开原生应用与页面(包括电话,短信,safari等)

[[UIApplication sharedApplication] openURL:url];通过给url不同的值,可以实现调用系统自带 电话/短信/邮箱/浏览器/... 1.调用 电话phone[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://800888"]]; 拨打电话之后不跳转回app[[UIApplication sharedApplication] openURL:[NSURL