UIRefreshControl 将在除 iPhone 6+ 之外的所有手机上关闭
Posted
技术标签:
【中文标题】UIRefreshControl 将在除 iPhone 6+ 之外的所有手机上关闭【英文标题】:UIRefreshControl will dismiss on all phones except iPhone 6+ 【发布时间】:2015-03-19 17:27:50 【问题描述】:我正在使用UIRefreshControl
的实例重新加载UITableView
中的数据。
如果我在除 iPhone 6+ 以外的任何手机上运行该应用程序,刷新控制将在数据刷新完成后消失。
但是,如果我在 iPhone 6+ 上运行该应用程序,刷新控件将在用户拉下表格视图以刷新数据后保持可见。下面是表格视图元素后面可见的刷新控件的屏幕截图:
除 6+ 以外的任何其他手机都不会发生此行为。下面是刷新table-view数据的代码,在viewWillAppear
里面:
if (self.refreshControl == nil)
UIRefreshControl *refreshControl = [UIRefreshControl new];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@" "];
refreshControl.tintColor = [UIColor refreshColor];
[refreshControl addTarget:self action:@selector(refreshTableView:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
self.tableView.backgroundView.layer.zPosition -= 1;
有谁知道为什么在 6+ 上刷新 table-view 时刷新控件会保持可见?
【问题讨论】:
设置断点后会发生什么? 我收到警告(就像我在运行应用程序时所做的那样)“强烈建议不要尝试在刷新控件不空闲时更改它,并且可能无法正常工作。” 【参考方案1】:根据this post上的accepted answer,您必须手动删除并断开刷新控件。
这感觉很老套,事实上,several[1]places[2]on the internet[3] 似乎建议在viewDidLoad
内部调用endRefreshing
。一些变体要求删除刷新控件,而另一些变体则改为 endRefreshing。
由于我不确定哪个有效,而且它可能取决于您的视图控制器的外观,所以我将由您决定。
【讨论】:
嘿 Moshe,再次感谢您的帮助和回答。我在您分享的链接中尝试了答案,但不幸的是;还没有取得任何成功。我想需要更多的调查。等我知道解决方案后一定会在这里发帖! 很抱歉听到您还没有解决问题!我现在没有想法,没有与 Apple 人员进行代码升级,但这是你的选择。那个,或者归档一个雷达。 ;) 实际上可能不是一个坏主意。 '代码升级和归档雷达有什么区别?再次感谢! 您可以在每个会员年度向 Apple 请求两次代码级支持。提交雷达只是在 bugreport.apple.com 上提交错误。代码级别的事件实际上更适合这种事情,只是因为网上没有太多可用的信息。以上是关于UIRefreshControl 将在除 iPhone 6+ 之外的所有手机上关闭的主要内容,如果未能解决你的问题,请参考以下文章