【发布时间】:2019-09-25 18:07:25
【问题描述】:
我有多个UICollectionViews 都放在UIScrollView 上。我想下拉 UIScrollView(类似于 Instagram 和 Twitter 提要刷新器)并刷新 UICollectionViews 中的数据。但是,我尝试的方法没有奏效。
下面是我尝试实现的代码。当我运行它并尝试下拉UIScrollView。我看到指示刷新的表盘,但没有任何变化,并且从未打印过“刷新”。
var refreshControl: UIRefreshControl!
override func viewDidLoad() {
super.viewDidLoad()
scrollView.alwaysBounceVertical = true
scrollView.bounces = true
refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(didPullToRefresh), for: .valueChanged)
self.scrollView.addSubview(refreshControl)
}
@objc func didPullToRefresh() {
targetCollectionView.reloaddata()
print("Refersh")
// For End refrshing
refreshControl.endRefreshing()
}
【问题讨论】:
-
检查你的 contentsize 高度是否小于你的 UIScrollView,然后它不会工作。还要注意这一点 AllowBounceVertical = true 并设置 UIScrollView 委托
-
尝试分配像
scrollView.refreshControl = refreshControl -
是的,如果您的目标是 iOS 10 及更高版本,请尝试 Raghav7890 解决方案,并且 Prasanth 的建议也很重要,如果您的滚动视图的内容大小高度低于滚动视图,那么它将无法工作
标签: ios swift xcode uiscrollview refresh