实现Pull-to-refresh将UITableViewController中的单元格向下移动

时间:2015-06-03 12:31:36

标签: objective-c uitableview addsubview uirefreshcontrol

我在UITableViewController的放置方面遇到了问题,并同时进行刷新。

我已经实现了pull to refresh和实现pull刷新API调用服务器并且数据被提取并显示在表视图列表中。问题是,在拉动刷新时,表格从其实际位置向下移动。 以下是我的代码和截图。

viewDidLoad{

 refreshControl = [[UIRefreshControl alloc] init];
    [refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
    [self.tableView addSubview:refreshControl];

}

- (void)handleRefresh:(id)sender
{
    // do your refresh here...
    [self Data];//method to get data from server
    [refreshControl endRefreshing];

}

enter image description here

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

UITableViewController具有内置的刷新控件。您不希望将新的作为子视图添加到tableview。只需初始化self.refreshControl

viewDidLoad {
  self.refreshControl = [[UIRefreshControl alloc] init];
  [self.refreshControl setTintColor:[UIColor lightGrayColor]];
  [self.refreshControl addTarget:self action:@selector(didRefresh:) forControlEvents:UIControlEventValueChanged];
}

- (void)didRefresh:(UIRefreshControl *)sender {
  [sender endRefreshing];
  [self Data];
}