Pull to refresh는 무한 스크롤에서 JSON 요청으로 작동하지 않습니다.

user8397599

웹에서 데이터를 무한 스크롤로 호출하고 "푸시하여 새로 고침"을 호출했습니다. 이제는 무한 스크롤이 잘 작동합니다. 그러나 "새로 고침하려면 끌어 오기"가 작동하지 않습니다. refreshAction func에서 어떤 종류의 코드를 작성해야하는지 모르기 때문입니다.

NetworkRequestAPI 요청

import Foundation

class NetworkRequestAPI {

static func getPropductListByCategory(productId : Int, pageNo : Int , completion: @escaping ([Product]? , Error?) -> ()){



    let url = URL(string: Configuration.BASE_URL+"/product-by/type?product_type_id="+String(productId)+"&page="+String(pageNo))



    var categoryObject = [Product]()



    URLSession.shared.dataTask(with:url!) { (urlContent, response, error) in

        if error != nil {


        }
        else {
            do {
                let json = try JSONSerialization.jsonObject(with: urlContent!) as! [String:Any]



                let products = json["products"] as? [String: Any]
                //   productCount = (json["product_count"] as? Int)!

                let items = products?["data"] as? [[String:Any]]



                items?.forEach { item in

                    let oProduct = Product()

                    oProduct.product_id = item["product_id"] as? Int
                    oProduct.product_name = item["product_name"] as? String

                    oProduct.product_image = item["product_image"] as? String



                    let ratingItem = item["rating_info"] as? [String: AnyObject]

                    let rating = RatingInfo()
                    rating.final_rating = ratingItem?["final_rating"] as? String

                    oProduct.rating_info = rating


                    categoryObject.append(oProduct)
                }
                completion(categoryObject, nil)

            } catch let error as NSError {

                print(error)
                completion(nil, error)
            }
        }


        }.resume()
}


}

ListTableView 클래스

class ListTableView: UITableViewController {



    var isInitUILoad = true

    var arrProduct = [[Product]]()

    var product_id:Int = 0

    var pageNo = 1


    override func viewDidLoad() {
        super.viewDidLoad()

        self.initUILoad()




        let refreshControl = UIRefreshControl()


        if #available(iOS 10.0, *) {
            tableView.refreshControl = refreshControl
        } else {
            tableView.addSubview(refreshControl)
        }


        refreshControl.addTarget(self, action: #selector(refreshWeatherData(_:)), for: .valueChanged)


    }


    @objc private func refreshWeatherData(_ sender: Any) {

        //
        // what codes have to add here
        //


        self.refreshControl?.endRefreshing()
    }



func initUILoad(){

    ActivityIndicator.customActivityIndicatory(self.view, startAnimate: true)

    NetworkRequestAPI.getPropductListByCategory(productId: product_id, pageNo: pageNo) { (products, error) in

        DispatchQueue.main.async(execute: {
            if products != nil {
                // self.totalItemLabel.text = String(self.product_count) + " products"
                self.pageNo += 1
                // self.product_count = productCount
                //self.arrProduct = products!
                self.arrProduct.append(products!)
                print(self.arrProduct.count)
                // self.tableView?.reloadData()
            }else{
                print(error.debugDescription)

            }

            ActivityIndicator.customActivityIndicatory(self.view, startAnimate: false)
            // self.totalItemLabel.text = String(self.product_count) + " products"
            self.tableView?.reloadData()
            self.isInitUILoad = false
        })
    }

}

func loadMore(complition:@escaping (Bool) -> ()) {

    NetworkRequestAPI.getPropductListByCategory(productId: product_id, pageNo: pageNo) { (products, error) in

        DispatchQueue.main.async(execute: {
            if error != nil{
                print(error.debugDescription)
            }
            if products != nil && products?.count ?? 0 > 0{
                // self.totalItemLabel.text = String(self.product_count) + " products"
                self.pageNo += 1
                // self.product_count = productCount
                // self.arrProduct = products!
                self.arrProduct.append(products!)
                self.tableView?.insertSections([self.arrProduct.count - 1], with: .fade)
                // self.tableView?.reloadData()

            }else{
                print("no product left")

            }
            complition(true)

        })
    }
}

}
살만 검사 니
@objc private func refreshWeatherData(_ sender: Any) {

    NetworkRequestAPI.getPropductListByCategory(productId: product_id, pageNo: 1) { (products, error) in

        DispatchQueue.main.async(execute: {
            if products != nil {
                // self.totalItemLabel.text = String(self.product_count) + " products"

                self.arrProduct = products!
                print(self.arrProduct.count)

            }else{
                print(error.debugDescription)

            }

            self.refreshControl?.endRefreshing()
            // self.totalItemLabel.text = String(self.product_count) + " products"
            self.tableView?.reloadData()
            self.isInitUILoad = false
        })
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Lazyload는 무한 스크롤에서 작동하지 않습니다-Ruby on Rails

분류에서Dev

WOW JS는 한 페이지 스크롤에서 작동하지 않습니다.

분류에서Dev

가로 스크롤에서 자연 스크롤이 작동하지 않습니다.이 문제를 해결하는 방법은 무엇입니까?

분류에서Dev

jQuery 클릭은 새로운 무한 스크롤 요소에서 작동하지 않습니다.

분류에서Dev

WebApi2에 대한 외부 JSON 요청이 작동하지 않습니다.

분류에서Dev

Nginx는 Sinatra JSON 경로에서 작동하지 않습니다.

분류에서Dev

수락 헤더를 기반으로 한 nginx 오류 페이지가 json 요청에 대해 작동하지 않습니다.

분류에서Dev

스택 내부에서 키보드를 렌더링 한 후 세로 스크롤을 올리는 방법은 SingleChildScrollView가 작동하지 않습니다 .FLutter?

분류에서Dev

Moment js는 React Native에서 JSON으로 작동하지 않습니다.

분류에서Dev

무한 스크롤바가 django에서 작동하지 않습니다.

분류에서Dev

쉘 스크립트는 수동으로 작동하지만 cron에서는 작동하지 않습니다.

분류에서Dev

다른 요소에 대한 href는 Polymer에서 작동하지 않습니다.

분류에서Dev

Google Script는 2 개의 개별 스크립트로 작동하지만 동일한 기능 내부에서는 작동하지 않습니다.

분류에서Dev

내 워드 프레스 테마로 무한 스크롤을 사용하려고하는데 작동하지 않습니다.

분류에서Dev

json 데이터에서 listview로 다음 페이지로드 (무한 스크롤)

분류에서Dev

jQuery 무한 스크롤의 Masonry 콜백이 Wordpress에서 작동하지 않고 무한 스크롤 플러그인도 작동하지 않습니다.

분류에서Dev

스크래피 스파이더는 필요한 텍스트를 기록하지만 (스크래피 쉘에서도 작동 함) JSON 파일에 쓰지 않습니다.

분류에서Dev

동일한 경로는 파일에서 잘 작동하고 폴더에서는 작동하지 않습니다.

분류에서Dev

가로 스크롤은 IE11에서 작동하지만 Chrome 및 Firefox에서는 작동하지 않습니다.

분류에서Dev

무한 스크롤이 작동하지 않는 후 Ajax 링크

분류에서Dev

가로 스크롤이 마우스에서 작동하지 않습니다.

분류에서Dev

POSTMAN에서 JSON이 작동하지 않는 POST 요청

분류에서Dev

api에 대한 게시 요청은 Android에서는 작동하지만 IOS에서는 작동하지 않습니다. 자 마린

분류에서Dev

간단한 POST 요청은 Postman에서는 작동하지만 브라우저에서는 작동하지 않습니다.

분류에서Dev

HTTPS에 대한 요청은 작동하지만 HTTP에 대한 요청은 작동하지 않습니다.

분류에서Dev

IE9에서 작동하지 않는 녹아웃 JS를 사용하여 빌드 된 무한 스크롤

분류에서Dev

Wordpress 페이지에서 작동하지 않는 앵커로 스크롤

분류에서Dev

Ipad에서 빠르게 작동하지 않는 JavaScript를 사용한 스크롤

분류에서Dev

Spring Cloud Bus는 더 이상 / actuator / bus-refresh에 대한 POST 요청을 지원하지 않습니다.

Related 관련 기사

  1. 1

    Lazyload는 무한 스크롤에서 작동하지 않습니다-Ruby on Rails

  2. 2

    WOW JS는 한 페이지 스크롤에서 작동하지 않습니다.

  3. 3

    가로 스크롤에서 자연 스크롤이 작동하지 않습니다.이 문제를 해결하는 방법은 무엇입니까?

  4. 4

    jQuery 클릭은 새로운 무한 스크롤 요소에서 작동하지 않습니다.

  5. 5

    WebApi2에 대한 외부 JSON 요청이 작동하지 않습니다.

  6. 6

    Nginx는 Sinatra JSON 경로에서 작동하지 않습니다.

  7. 7

    수락 헤더를 기반으로 한 nginx 오류 페이지가 json 요청에 대해 작동하지 않습니다.

  8. 8

    스택 내부에서 키보드를 렌더링 한 후 세로 스크롤을 올리는 방법은 SingleChildScrollView가 작동하지 않습니다 .FLutter?

  9. 9

    Moment js는 React Native에서 JSON으로 작동하지 않습니다.

  10. 10

    무한 스크롤바가 django에서 작동하지 않습니다.

  11. 11

    쉘 스크립트는 수동으로 작동하지만 cron에서는 작동하지 않습니다.

  12. 12

    다른 요소에 대한 href는 Polymer에서 작동하지 않습니다.

  13. 13

    Google Script는 2 개의 개별 스크립트로 작동하지만 동일한 기능 내부에서는 작동하지 않습니다.

  14. 14

    내 워드 프레스 테마로 무한 스크롤을 사용하려고하는데 작동하지 않습니다.

  15. 15

    json 데이터에서 listview로 다음 페이지로드 (무한 스크롤)

  16. 16

    jQuery 무한 스크롤의 Masonry 콜백이 Wordpress에서 작동하지 않고 무한 스크롤 플러그인도 작동하지 않습니다.

  17. 17

    스크래피 스파이더는 필요한 텍스트를 기록하지만 (스크래피 쉘에서도 작동 함) JSON 파일에 쓰지 않습니다.

  18. 18

    동일한 경로는 파일에서 잘 작동하고 폴더에서는 작동하지 않습니다.

  19. 19

    가로 스크롤은 IE11에서 작동하지만 Chrome 및 Firefox에서는 작동하지 않습니다.

  20. 20

    무한 스크롤이 작동하지 않는 후 Ajax 링크

  21. 21

    가로 스크롤이 마우스에서 작동하지 않습니다.

  22. 22

    POSTMAN에서 JSON이 작동하지 않는 POST 요청

  23. 23

    api에 대한 게시 요청은 Android에서는 작동하지만 IOS에서는 작동하지 않습니다. 자 마린

  24. 24

    간단한 POST 요청은 Postman에서는 작동하지만 브라우저에서는 작동하지 않습니다.

  25. 25

    HTTPS에 대한 요청은 작동하지만 HTTP에 대한 요청은 작동하지 않습니다.

  26. 26

    IE9에서 작동하지 않는 녹아웃 JS를 사용하여 빌드 된 무한 스크롤

  27. 27

    Wordpress 페이지에서 작동하지 않는 앵커로 스크롤

  28. 28

    Ipad에서 빠르게 작동하지 않는 JavaScript를 사용한 스크롤

  29. 29

    Spring Cloud Bus는 더 이상 / actuator / bus-refresh에 대한 POST 요청을 지원하지 않습니다.

뜨겁다태그

보관