【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];
}
资料参考
额外补充
需求实现部分就先到这!接下来,是一些个人平时整理的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;