如何添加拉表视图以刷新 uitableview 内的数据

Posted

技术标签:

【中文标题】如何添加拉表视图以刷新 uitableview 内的数据【英文标题】:How to add pull tableview up to refresh data inside the uitableview 【发布时间】:2013-05-31 07:41:53 【问题描述】:

我知道如何将下拉刷新添加到视图控制器中。但现在的情况是:我有一个 UIView & 包含一个 UITableView 并且我想将 table view 拉到 tableview 的最底部以重新加载它的数据。

如何在 UITableView 中添加下拉刷新,而不是它的父视图的控制器。

【问题讨论】:

你是否尝试在 ios 6 中实现它? 查看此代码https://github.com/enormego/EGOTableViewPullRefresh 可以使用子表视图控制器吗? 【参考方案1】:

在你的 ViewDidLoad 添加这个:

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

然后刷新

- (void)refresh:(id)sender

// do your refresh here and reload the tablview

【讨论】:

布拉瓦。如果需要,我们也可以使用一些 UITableViewController。 @vin 然后你会如何告诉刷新操作停止? (你会运行什么代码?) @playbasegames 你可以使用 endrefreshing 方法停止 这个方法不会通过上拉tableView刷新,只能下拉刷新。 我同意 Bot 和 rilar【参考方案2】:

很简单:取一个UIScrollView,在里面取UITableview,放在UITableView的底部,然后写Scrollview委托方法

    #pragma mark -
    #pragma mark - Scroll View Delegate Method

    - (void) scrollViewDidScroll:(UIScrollView *)scrollView 

        if (scrollView == scrollObj) 
            CGFloat scrollPosition = scrollObj.contentSize.height - scrollObj.frame.size.height - scrollObj.contentOffset.y;
            if (scrollPosition < 30)// you can set your value
            
                if (!spinnerBottom.isAnimating) 
                    [spinnerBottom startAnimating];
                    [self YourPUllToRefreshMethod];
                
            
        
    

【讨论】:

以上是关于如何添加拉表视图以刷新 uitableview 内的数据的主要内容,如果未能解决你的问题,请参考以下文章

Objective C:如何在当前可见帧中设置子视图显示? (UITableView)

如何在 UITableView 中刷新单节标题的文本

UITableView 滚动刷新使单元格跳跃

嵌入在容器中的 UITableView 不刷新

如何刷新表视图以使索引也更新?

如何以编程方式创建表视图?