我正在构建一个应用程序,它需要能够通过拉动刷新,然后重新运行ViewDidLoad。所以我知道我可以使用UIRefreshControl,但是我只能找到在UITableViewController中使用的代码。有没有人知道如何在UIRefreshControl中而不是在UITableView中使用UITableView。提前谢谢。
发布于 2013-12-18 15:59:16
UIRefreshControl不适合在没有表的情况下使用。本说明在文献资料中特别警告不要使用这种方法:
注意:,因为刷新控件是专门为表视图控制器管理的表视图中使用而设计的,在不同的上下文中使用它可能会导致未定义的行为。
因此,尽管可以让控件正常工作,但实际上不应该在没有表的情况下使用它。滚动您自己的刷新控制是一个更好的解决方案。
更好的是,尝试设计你的应用程序,这样用户就不需要刷新视图了。应用程序应该知道何时有新的数据可用。让用户刷新的唯一理由是,如果这样做会使用户感到困惑,或者以其他方式使应用程序更难使用。
发布于 2013-12-18 15:49:54
试试这个…
[myView setNeedsDisplay];这将重新加载视图控制器。您可以将其放入方法中,并在拉期间调用它以刷新…。希望这能帮到你。(愉快的编码;)
发布于 2013-12-18 15:16:25
非常容易:将控件保留为成员或财产:
UIRefreshControl *_refreshControl;将其添加到viewDidLoad方法中:(只需将控件添加到tableView中即可。当然,确保tableView不是零)。
_refreshControl = [[UIRefreshControl alloc] init];
[_refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[_tableView insertSubview:_refreshControl atIndex:0];实现刷新方法:
- (void)refresh:(UIRefreshControl *)refreshControl {
[self reloadData];
//Don't forget to stop the refreshing animation after data reloads.
[_refreshControl endRefreshing];
}https://stackoverflow.com/questions/20661563
复制相似问题