使用 UIRefreshControl 刷新 UITableView
Posted
技术标签:
【中文标题】使用 UIRefreshControl 刷新 UITableView【英文标题】:Refresh UITableView using UIRefreshControl 【发布时间】:2018-06-15 11:06:30 【问题描述】:我在我的 tblView 中插入 UIRefreshControl
,当我下拉我的表格视图时,它是调用方法 cellForRowAtIndex
但我的数组列表没有元素,那么为什么它被调用了? UIRefreshControl
在 viewDidLoad
方法中的代码:
refreshControl = [[UIRefreshControl alloc]init];
[self.tblView addSubview:refreshControl];
[refreshControl addTarget:self action:@selector(refreshTablee) forControlEvents:UIControlEventValueChanged];
refreshTablee 的代码是:
#pragma mark:refresh table
- (void)refreshTablee
//TODO: refresh your data
[refreshControl endRefreshing];
page=1;
slot = 10;
HUD = [MBProgressHUD showHUDAddedTo:self.view animated:true];
[apiObj getAskQuestion:@@"user_id":usr.usrid,@"owner_id":usr.owner_id ,@"page":[NSString stringWithFormat:@"%d",page]];
[backupArr removeAllObjects];
[questionList removeAllObjects];
表格方法有:
#pragma mark:table view delegate datasource
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return questionList.count;
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//code for returning cell
return cell;
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
if ((int)indexPath.row == (slot-2))
page = page+1;
slot = slot+10;
HUD = [MBProgressHUD showHUDAddedTo:self.view animated:true];
[apiObj getAskQuestion:@@"user_id":usr.usrid,@"owner_id":usr.owner_id ,@"page":[NSString stringWithFormat:@"%d",page]];
【问题讨论】:
因为您忘记在 refreshTablee 方法中刷新 tableview。 收到 api 的响应后刷新表 @dreamBegin 好的,我知道了,它正在工作,我用 refresh Tablee 方法重新加载我的表。谢谢 干杯!........ 【参考方案1】:根据@dreamBegin 的建议,我在 refreshTablee 方法中重新加载我的表及其工作。感谢回复@dreamBegin
#pragma mark:refresh table
- (void)refreshTablee
//TODO: refresh your data
[refreshControl endRefreshing];
page=1;
slot = 10;
HUD = [MBProgressHUD showHUDAddedTo:self.view animated:true];
[apiObj getAskQuestion:@@"user_id":usr.usrid,@"owner_id":usr.owner_id ,@"page":[NSString stringWithFormat:@"%d",page]];
[backupArr removeAllObjects];
[questionList removeAllObjects];
[self.tblView reloadData];
【讨论】:
以上是关于使用 UIRefreshControl 刷新 UITableView的主要内容,如果未能解决你的问题,请参考以下文章
使用 RxSwift 刷新后绑定到 UIRefreshControl
使用 UIRefreshControl 刷新 TableView 内容