iOS - 刷新控件 - “强烈建议不要尝试在刷新控件未空闲时更改它,并且可能无法正常工作。”

Posted

技术标签:

【中文标题】iOS - 刷新控件 - “强烈建议不要尝试在刷新控件未空闲时更改它,并且可能无法正常工作。”【英文标题】:iOS - Refresh Control - "Attempting to change the refresh control while it is not idle is strongly discouraged and probably won't work properly." 【发布时间】:2014-01-22 23:10:37 【问题描述】:

我在任何地方都找不到很多对这个警告的引用。我有两个提供下拉刷新控制的视图控制器。一个很好。另一个产生上述警告。我将代码从一个复制到另一个。

代码如下(PFUser参考Parse.com):

[super viewDidAppear:animated];
    if ([PFUser currentUser]) 
        NSLog(@"who's the user: %@", [PFUser currentUser]);


        UIRefreshControl *refreshTable = [[UIRefreshControl alloc] init];
        refreshTable.attributedTitle = [[NSAttributedString alloc] initWithString:@"One sec... refreshing"];
        [refreshTable addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
        self.refreshControl = refreshTable;

     else 

有没有其他人遇到过这种情况?是否有解决方法/修复方法?

【问题讨论】:

viewDidLoad做吧。 你成功了。谢谢你。如果您将其写为答案,我会将其标记为完成。非常感谢 很高兴它有帮助。我已经把它写成答案了。 【参考方案1】:

viewDidLoad 方法中执行。

【讨论】:

【参考方案2】:

在我的例子中,这个警告是因为我在做collectionView.refreshControl = nilrefreshControl 正在制作动画。在这样做之前调用 refreshControl.endRefreshing() 可以消除警告。

【讨论】:

以上是关于iOS - 刷新控件 - “强烈建议不要尝试在刷新控件未空闲时更改它,并且可能无法正常工作。”的主要内容,如果未能解决你的问题,请参考以下文章

IOS 常用UI控件

iOS开发UI篇—实现UITableview控件数据刷新

iOS开发UI篇—实现UItableview控件数据刷新

ios中uiscrollview的底部刷新控件

IOS6.0自带下拉刷新控件UIRefreshControl

如何避免在带有 Swift 4 的 iOS 11 中使用带有刷新控件的 @objc?