【ios】refreshControl控件


前言

本博文主要是对ios中refreshControl控件的一个介绍,以及记录,方便后续使用时候可以直接加载,这边ios开发主要使用语言Objective-C。
在这里插入图片描述

refreshControl控件介绍

refreshControl是iOS开发中的一个控件,用于实现下拉刷新功能。它通常与UIScrollView或其子类配合使用,使用户能够在滚动视图的顶部下拉手势来刷新内容。

使用refreshControl非常简单,只需要在ScrollView中添加一个refreshControl对象,并设置其触发的方法即可。当用户下拉滚动视图时,refreshControl会自动更新其状态,并执行设置的方法。

refreshControl提供了以下几种状态:

  • idle(闲置):滚动视图处于初始状态,未触发下拉刷新。
  • pulling(拉动):滚动视图正在被下拉,但还未达到刷新的阈值。
  • refreshing(刷新):滚动视图达到刷新的阈值,正在执行刷新操作。
  • finished(完成):刷新操作完成。

在实现refreshControl时,可以通过定制刷新视图的样式和行为来提高用户体验。可以设置刷新视图的背景颜色、文字、加载指示器等。

总的来说,refreshControl是一个非常便捷的控件,可以帮助开发者轻松实现下拉刷新功能,提升用户界面的交互性和实用性。

实例

TableViewController下使用

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //刷新
    self.refreshControl=[[UIRefreshControl alloc]initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 100)];
    [self.tableView.tableHeaderView addSubview:self.refreshControl];
    [self.refreshControl addTarget:self  action:@selector(loadData:) forControlEvents:UIControlEventValueChanged];
    

}
#pragma mark -loadData
-(void)loadData:(UIRefreshControl*)sender
{
    //加载数据,添加
    //[self.myDealTableView reloadData];
    [self getInformation];

    //结束刷新
    [self.refreshControl endRefreshing];
}

ViewController下使用

@property (strong,nonatomic)UIRefreshControl *refreshControl;
- (void)viewDidLoad {
    [super viewDidLoad];
    
    //刷新
self.refreshControl = [[UIRefreshControl alloc]initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 100)];
self.refreshControl.tintColor = [UIColor redColor];
[self.tableView addSubview:self.refreshControl];
[self.refreshControl addTarget:self action:@selector(load:) forControlEvents:UIControlEventValueChanged];
}
#pragma mark-load
-(void)load:(UIRefreshControl*)sender
{
    //开始刷新加载数据
    NSString *room = [NSString stringWithFormat:@"room-%d",arc4random_uniform(10)];
    [self.arrayM addObject:room];
    [self.tableView reloadData];

    //结束刷新
    [self.refreshControl endRefreshing];
}

资料参考

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


额外补充

需求实现部分就先到这!接下来,是一些个人平时整理的c++ 要点概要,如有需要可以进行阅读

结构体

  • 第一种是最基本的结构体定义, 其定义了一个结构体 A。
struct A  { int a;};
  • 第二种则是在定义了一个结构体 B 的同时定义了一个结构体 B 的变量 m。
struct B  { int b;}m;
  • 第三种结构体定义没有给出该结构体的名称, 但是定义了一个该结构体的变量 n, 也就是说,若是想要在别处定义该结构体的变量是不行的, 只有变量 n 这种在定义结构体的同时定义变量才行。
struct  { int c;}n;
  • 第四种结构体定义在第一种结构定义的基础上加了关键字typedef, 此时我们将struct D{int d}看成是一个数据类型, 但是因为并没有给出别名, 直接用 D 定义变量是不行的。 如 D test; ,不能直接这样定义变量 test。 但 struct D test; 可行。
typedef struct D  { int d;};
  • 第五种结构体定义在第四种结构体定义的基础上加上了别名 x, 此时像在第四种结构体定义中说得那样, 此时的结构体 E 有别名 x, 故可以用 x 定义 E 的结构体变量。 用 E 不能直接定义, 需要在前面加 struct,struct E test;
typedef struct E  { int e;}x;
  • 第六种结构体定义在第五种的基础上减去了结构体名, 但是若是直接使用 y 来定义该结构体类型的变量也是可以的。 如 y test;(常用)
typedef struct  { int f;}y;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻傻虎虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值