首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode UIRefreshControl on UIView

Xcode UIRefreshControl on UIView
EN

Stack Overflow用户
提问于 2013-12-18 15:04:12
回答 3查看 4.9K关注 0票数 2

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-18 15:59:16

UIRefreshControl不适合在没有表的情况下使用。本说明在文献资料中特别警告不要使用这种方法:

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

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

更好的是,尝试设计你的应用程序,这样用户就不需要刷新视图了。应用程序应该知道何时有新的数据可用。让用户刷新的唯一理由是,如果这样做会使用户感到困惑,或者以其他方式使应用程序更难使用。

票数 -2
EN

Stack Overflow用户

发布于 2013-12-18 15:49:54

试试这个…

代码语言:javascript
复制
[myView setNeedsDisplay];

这将重新加载视图控制器。您可以将其放入方法中,并在拉期间调用它以刷新…。希望这能帮到你。(愉快的编码;)

票数 1
EN

Stack Overflow用户

发布于 2013-12-18 15:16:25

非常容易:将控件保留为成员或财产:

代码语言:javascript
复制
UIRefreshControl *_refreshControl;

将其添加到viewDidLoad方法中:(只需将控件添加到tableView中即可。当然,确保tableView不是零)。

代码语言:javascript
复制
 _refreshControl = [[UIRefreshControl alloc] init];
[_refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[_tableView insertSubview:_refreshControl atIndex:0];

实现刷新方法:

代码语言:javascript
复制
- (void)refresh:(UIRefreshControl *)refreshControl {
   [self reloadData];
    //Don't forget to stop the refreshing animation after data reloads.
  [_refreshControl endRefreshing];
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20661563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档