我正在构建一个需要能够通过拉动来刷新的应用程序,然后重新运行ViewDidLoad。 所以我知道我可以使用UIRefreshControl,但我只能找到UITableViewController中使用的代码。 有没有人知道如何在UIView中使用UIRefreshControl而不是在UITableView中。 提前谢谢。
答案 0 :(得分:1)
试试这个......
[myView setNeedsDisplay];
这将重新加载您的视图控制器。你可以把它放在一个方法中并在拉动期间调用它来刷新...希望这对你有帮助。 快乐的编码;)
答案 1 :(得分:-1)
非常容易: 将控件保持为成员或财产:
UIRefreshControl *_refreshControl;
将此添加到viewDidLoad方法:(只需将控件添加到tableView中。确保tableView不是nil ofcourse)。
_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];
}
答案 2 :(得分:-2)
UIRefreshControl
并不意味着在没有桌子的情况下使用。 the documentation中的这一说明专门警告不要使用此类说明:
注意:因为刷新控件专门设计用于由表视图控制器管理的表视图中,所以在 不同的上下文可能导致未定义的行为。
因此尽管可以让控件工作,但你真的不应该在没有表的情况下使用它。滚动自己的刷新控制是一个更好的解决方案。
更好的是,尝试设计您的应用,以便用户无需刷新视图。应用程序应该知道新数据何时可用。让用户刷新的唯一理由是,如果这样做会自动地混淆用户或者使应用程序更难以使用。