Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios &引用;覆盖功能scrollViewDidScroll";多次打电话。我只想打一次电话_Ios_Swift_Uiscrollview - Fatal编程技术网

Ios &引用;覆盖功能scrollViewDidScroll";多次打电话。我只想打一次电话

Ios &引用;覆盖功能scrollViewDidScroll";多次打电话。我只想打一次电话,ios,swift,uiscrollview,Ios,Swift,Uiscrollview,我进行分页。 override func-scrollViewDidScroll在我滚动时多次调用的方法。 所以loadMore方法也被多次调用。 我只想在滚动时调用loadMore()方法一次 我怎样才能解决它 override func scrollViewDidScroll(_ scrollView: UIScrollView) { if scrollView.contentOffset.y >= scrollView.contentSize.height / 3 {

我进行分页。
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()
        }
    }
}
覆盖函数scrollViewDidScroll(scrollView:UIScrollView){
如果scrollView.contentOffset.y>=scrollView.contentSize.height/3{
loadMore()
}
}
//分页
func loadMore(){
//如果服务器上的帖子超出显示范围

如果要解决此问题,您可能需要实现一个
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
        }
    }
}
假设我正确地阅读了您的问题,这应该可以解决问题,或者至少可以让您朝着正确的方向开始…

使用ScrollViewDiEndDraging(ux0:willDecreate:)没问题:)很高兴您已排序:)