将目标添加到 UIRefreshControl()

Posted

技术标签:

【中文标题】将目标添加到 UIRefreshControl()【英文标题】:addTarget to UIRefreshControl() 【发布时间】:2016-01-05 14:16:14 【问题描述】:

我发了UIRefreshControl:

refresher = UIRefreshControl()
refresher.attributedTitle = NSAttributedString(string: "refresh")
refresher.addTarget(self, action: "refreshed", forControlEvents: UIControlEvents.ValueChanged)
refresher.addTarget(self, action: "refreshed", forControlEvents: UIControlEvents.ApplicationReserved)
refresher.addTarget(self, action: "refreshed", forControlEvents: UIControlEvents."scrolled down to bottom")  

这是一个复习,工作正常,但我想添加一个动作,当我向下滚动到 tableView 的底部时,它会刷新,就像我对 ValueChanged 所做的那样,但对于底部

【问题讨论】:

您需要在表格视图上使用滚动视图委托方法来制作您自己的视图。 UIRefreshControl 不知道您的表格视图何时到达底部。也许scrollViewDidScroll(_:) 中的某些内容会检查contentOffset 是否指示表格视图已滚动到底部。 @ShaohaoLin:请不要在帖子中添加“谢谢”的地方提出修改建议。这是fluff that should be edited out。 是的,感谢您回答这个问题,以及我的许多其他问题:) 【参考方案1】:

你可以使用内置的scrollViewDidEndDecelerating

func scrollViewDidEndDecelerating(scrollView: UIScrollView) 
    let bottomEdge = scrollView.contentOffset.y + scrollView.frame.size.height
    if bottomEdge >= scrollView.contentSize.height 
        // Reached bottom, do your refresh
        print("Bottom")
    

scrollView 结束时,它正在减速并且您处于底部,然后您可以致电您的refresher

【讨论】:

以上是关于将目标添加到 UIRefreshControl()的主要内容,如果未能解决你的问题,请参考以下文章

类似于 UIRefreshControl 将隐藏的 UIView 添加到 UITableView

在 UITableView 下方添加 UIRefreshControl [重复]

UIRefreshControl 默认添加奇怪的插图

将 UIRefreshControl 所需的路径更改为 UIControlEventValueChanged

有水平的 UIRefreshControl 吗?

如何添加 UIRefreshControl