UIView上的Xcode UIRefreshControl

时间:2013-12-18 15:04:13

标签: xcode uiview uirefreshcontrol

我正在构建一个需要能够通过拉动来刷新的应用程序,然后重新运行ViewDidLoad。 所以我知道我可以使用UIRefreshControl,但我只能找到UITableViewController中使用的代码。 有没有人知道如何在UIView中使用UIRefreshControl而不是在UITableView中。 提前谢谢。

3 个答案:

答案 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中的这一说明专门警告不要使用此类说明:

  

注意:因为刷新控件专门设计用于由表视图控制器管理的表视图中,所以在   不同的上下文可能导致未定义的行为。

因此尽管可以让控件工作,但你真的不应该在没有表的情况下使用它。滚动自己的刷新控制是一个更好的解决方案。

更好的是,尝试设计您的应用,以便用户无需刷新视图。应用程序应该知道新数据何时可用。让用户刷新的唯一理由是,如果这样做会自动地混淆用户或者使应用程序更难以使用。