mohammadakabri

سلام من چجوری یک تیبل ویو لود مور ایجاد کنم ؟

mohammadakabri ۱۳۹۷/۰۸/۲۰ 97 برنامه‌نویسی آی‌او‌اس

سلام من چجوری یک تیبل ویو لود مور ایجاد کنم ؟

من کدها رو نوشتم هر موقع ته لیست میرسه میخونه ولی اد نمیشه ته لیستم بلکه لیستم ری لود میشه

//این کلاس من

var news = [NewsElement]()





// این کد برای این که ته لیستم برسه ریکوست بزنه

override func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {

        if scrollView == tableView {

            if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height) {



               if !listNews.isLoadingFooterShowing() {

                    self.loadMore()

                    }



            }

        }

    }



// این متد لود مور من هستش

    func loadMore() {



        self.offset = String(Int(offset)! + 10)

        self.getJsonNews(type:"newest", offset: offset)

        self.listNews.showLoadingFooter()

// اینجا من اپند کردم ولی اپند نمیشه بلکه ری لود میشه 

        self.news.insert(contentsOf: news + news, at: news.count)



        DispatchQueue.global().async {

            DispatchQueue.main.sync {

                self.listNews.reloadData()

                self.listNews.hideLoadingFooter()

            }

        }

    }







// متد من برای ریکوستزدن

func getJsonNews(type:String , offset:String) {

        let parameters = [

            "limit":"10",

            "offset":offset,

            "type":type

            ]

        let parametersH:HTTPHeaders = [

            "Authorization":"Basic ==",

            "x-api-key":"mykeyg154658746546546544s8ck8" ,

            ]

        Alamofire.request(GET_NEWS, method: .post ,  parameters: parameters , headers: parametersH  ).responseJSON { (response) in



            print(response.result)

            switch response.result {

            case .success:

                guard let data = response.data else {return}

                do

                {

                    let json = JSONDecoder()

                    let decode = try json.decode(News.self, from: data)

                    self.news = decode

                    DispatchQueue.global().async {

                        DispatchQueue.main.sync {

                                self.listNews.reloadData()

                                self.viewIndicator.alpha = 0

                                self.loadIndicator.alpha = 0

                                self.listNews.hideLoader()

                        }

                    }

                } catch let err {

                    print(err)

                }



            case .failure(let error):

                print(error)

            }

        }

    }
پاسخ‌ها به این تاپیک
محمد رضی پور
محمد رضی پوربرنامه نویس ios هستم ، عاشق یادگیری و پیشرفت
۱۳۹۷/۰۸/۲۰

سلام

اول از همه شما برای ایجاد یک لیست باید از TableView استفاده کنید (از CollectionView هم می شه در موارد خاص) کمی در مورد استفاده ازش بخونید یه فانکشن داره به نام 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

این فانکشن وظیفه ساختن هر Cell رو در TableView  داره. توی این فانکشن یه شرط میزارید که وقتی رسید به ته لیست درخواست جدید بده و اطلاعات جدید رو بگیره و اضافه کنه ته لیست و لیست رو ریلود کنه. شرط به این صورت: 

if myArray.count == indexPath.row {

   //Get new value

}

سوالی بود من در خدمتون هستم.