gpt4 book ai didi

ios - "override func scrollViewDidScroll"多次调用。我只想打电话一次

转载 作者:可可西里 更新时间:2023-11-01 01:09:18 28 4
gpt4 key购买 nike

我做分页。override func scrollViewDidScroll 方法在我滚动时调用了多次。所以 loadMore 方法也被调用了很多次。我只想在滚动时调用一次 loadMore() 方法。

我该如何解决?

override func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y >= scrollView.contentSize.height / 3 {
loadMore()
}
}

// pagination
func loadMore() {
// if posts on the server are more than shown
if page <= prePage {
// increase page size
page = page + 3
prePage = page

self.posts.removeAll()
self.collectionView.reloadData()
Api.Post.observeTopPosts(page: self.page) { (post) in
self.posts.append(post)
print(post)
self.collectionView.reloadData()
}
}
}

最佳答案

要解决这个问题,您可能需要实现一个 Bool 值,该值将决定是否调用 loadMore 函数。

创建一个 var 来判断你的函数是否被调用:

var hasLoaded = false

然后在您的 scrollViewDidScroll 方法中添加以下内容:

  override func scrollViewDidScroll(_ scrollView: UIScrollView) {

if scrollView.contentOffset.y >= scrollView.contentSize.height / 3 {

//If we haven't loaded data then call the function
if !hasLoaded{

loadMore()

//Data has been loaded so set hasLoaded to true
hasLoaded = true
}
}
}

假设我已经正确阅读了您的问题,这应该可以解决问题,或者至少让您朝着正确的方向开始......

关于ios - "override func scrollViewDidScroll"多次调用。我只想打电话一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49079752/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com