모바일/IOS

무한스크롤 infinite scroll

죠부니 2018. 2. 27. 14:38
반응형

아래쪽 테이블뷰를 하면서

무한스크롤 관련에 대한 내용을 많이봤지만 버그가 많거나 작동이 이상했다.


적용할 클래스에 스크롤뷰 델리게이트를 추가후

UIScrollViewDelegate


로딩중 불러오는걸 방지하기위한 변수를 하나 세팅하고 scrollViewDidEndDecelerating 를 통해서 해결했다.

var isMoreDataDownLoading = false


    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {

        if(scrollView.contentOffset.y != 0){

            guard !isMoreDataDownLoading else {return}



            activityIndicatior.startAnimating()

            UIApplication.shared.beginIgnoringInteractionEvents()



            self.isMoreDataDownLoading = true

            lodeData()

        }

    }


해당 이벤트가 최상단일경우와 하단일경우에도 발생하므로 상단에서 발생할때는 작동을 하지 않게 contentOffset.y 값이 0일때는 발생하지 않게 한다.


로딩중일때는 작동을하지 않게하고 해당 내용을 불러왔다.


쉬운방법이 있었는데  API를 역시 다모르니 오래걸릴수밖에 없었다.


    func scrollViewDidScroll(_ scrollView: UIScrollView) {

        

    }

https://developer.apple.com/documentation/uikit/uiscrollviewdelegate/1619417-scrollviewdidenddecelerating

반응형