如何在没有 UITableViewController 的情况下结束 UIRefreshControl

Posted

技术标签:

【中文标题】如何在没有 UITableViewController 的情况下结束 UIRefreshControl【英文标题】:How to end UIRefreshControl without UITableViewController 【发布时间】:2013-04-03 14:07:58 【问题描述】:

我创建了一个没有 TableViewController 的 UIRefreshcontrol。我的问题是我将如何在另一种方法中结束它? 这就是我创建它的方式;

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

【问题讨论】:

可能重复:***.com/questions/12497940/… 【参考方案1】:

在@Justin Paulsson 的帮助下,我发现这是可以做到的;

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

-

-(void) handleRefresh:(UIRefreshControl *)controller
    
        //Refresh code
        controller.endRefreshing;
    

【讨论】:

【参考方案2】:

记录的方式是使用UITableViewController。其他任何东西都可以工作,但由于没有记录,它可能会在下一个 ios 版本中中断。

在你的情况下,我只使用UITableViewController

【讨论】:

是的,我知道这是一种首选方式,但我该怎么做呢?我宁愿保持这种状态,并以某种方式结束它。 要继续使用您尝试的方式,您需要将refreshControl 的引用存储在属性或ivar 中,以便稍后使用它来调用endRefreshing 或者只使用[controller endRefreshing],因为handleRefresh: 传递了对UIRefreshControl 的引用 当然。我还没有看到它传递给handleRefresh:【参考方案3】:

事实证明,UIRefreshControl 根本不需要 UITableView。 refreshControl 是 property of UIScrollView。你可以在继承自 UIScrollView 的任何东西上设置它,当然包括 UITableView,也包括其他类,例如 UICollectionView。

【讨论】:

以上是关于如何在没有 UITableViewController 的情况下结束 UIRefreshControl的主要内容,如果未能解决你的问题,请参考以下文章

tableHeaderView中的UITextView找不到委托

viewController的生命周期

将 UITableView 实例化为弹出框时,UITableViewCell 的属性为零

如何在没有引用的情况下复制对象?

如何在没有 createSlice 的情况下使用 createThunkAsync

我如何在没有订单的情况下填充托盘架存储?