如何让 UIRefreshControl 在隐藏后重新出现?
Posted
技术标签:
【中文标题】如何让 UIRefreshControl 在隐藏后重新出现?【英文标题】:How do I make a UIRefreshControl reappear after hiding it? 【发布时间】:2014-01-23 10:31:49 【问题描述】:我设置了 UITableViewController 和 UIRefreshControl。 refreshControl 工作并重新加载 tableView。问题是我的 tableView 上方有一个 UISegmentedControl,它使用不同的数据重新加载 tableView,具体取决于您单击的段。现在我只希望 refreshControl 能够在第一段(这也是默认值)上工作,并且我想为其他两个 UISegmentedControl 元素禁用它。这是 tableView 的屏幕截图:
现在,我只需通过设置 self.refreshControl = nil
来隐藏它,这可以正常工作。问题是,一旦我完成了该操作(通过单击其他 UISC 元素之一),我就无法让它在默认表中恢复工作。我尝试在选择@"Aktuelle Rezepte" 元素后简单地重置self.refreshControl = savedRefreshControl
,但这不起作用。我进一步尝试使用
[self.refreshControl setEnabled:NO];
[self.refreshControl setHidden:YES];
然后在需要时重置这两个,但这也不起作用。你怎么认为?我完全错过了什么吗?
【问题讨论】:
【参考方案1】:我找到了答案 - 这是一个愚蠢的错误。我在 UITableViewController 的顶部声明了savedRefreshControl
,但将其属性设置为(weak, nonatomic)
而不是(strong, nonatomic)
,这就是重置self.refreshControl
不起作用的原因。
正如其他帖子中提到的那样,请确保在它仍在刷新时不要执行 self.refreshControl = nil
,因为它会搞砸应用程序和刷新逻辑。
【讨论】:
以上是关于如何让 UIRefreshControl 在隐藏后重新出现?的主要内容,如果未能解决你的问题,请参考以下文章
如何仅在获取数据完成时(在 Swift 中)隐藏我的 UIRefreshControl?
类似于 UIRefreshControl 将隐藏的 UIView 添加到 UITableView
从 Firebase 完成加载后如何使 UIRefreshControl 结束刷新