2016-01-04 4 views
20

मैं अधिक डेटा लोड करना चाहता हूं और जब उपयोगकर्ता तालिका के नीचे स्क्रॉल करता है तो अतिरिक्त कक्ष बनाना चाहता हूं। मैं JSON डेटा और MySQL का उपयोग कर रहा हूँ।UITableView नीचे स्क्रॉल करते समय अधिक लोड करें

func dataJsonFromURL(url:String)->NSArray 
{ 
    if let data = NSData(contentsOfURL: NSURL(string: url)!) { 
     return ((try! NSJSONSerialization.JSONObjectWithData(data, options: [])) as! NSArray) 
    } 
    else{ 
     return data 
    } 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 
    let cell = tableView.dequeueReusableCellWithIdentifier("NCell", forIndexPath: indexPath) as! TableViewCell22 

    cell.backgroundColor = UIColor .clearColor() 

    let mindata = (data[indexPath.row] as! NSDictionary) 
} 

उत्तर

-5

इस लाइब्रेरी का उपयोग करें। https://github.com/samvermette/SVPullToRefresh

यह आपकी आवश्यकताओं को पूरा करेगा। आपको हर बार पेज नंबर या टाइमस्टैंप बदलने की ज़रूरत है, जब नई वेब-सेवा कॉल की जाएगी।

+0

मैं तेजी के लिए चाहते हैं –

+0

आप मिक्स और मैच का उपयोग कर सकते हैं, इस आलेख का पालन करें https://developer.apple.com/librar वाई/आईओएस/दस्तावेज़ीकरण/स्विफ्ट/अवधारणात्मक/बिल्डिंगकोकाएप/मिक्सैंडमैच.html –

+0

या यदि आप कोकोपोड्स का उपयोग कर रहे हैं, तो आप सीधे अपने व्यू कंट्रोलर.swift फ़ाइल के शीर्ष पर आयात कथन द्वारा मिश्रण और मिलान के बिना उपयोग कर सकते हैं। –

1

इसे टेबलव्यू पर कॉल किया गया। पृष्ठ पर बड़े डेटा को प्रभावी ढंग से दिखाने के लिए पृष्ठांकन का उपयोग किया जाता है। Here's आप उद्देश्य-सी के लिए अच्छा ट्यूटोरियल प्राप्त कर सकते हैं और Question पर तेज़ी से देखने के लिए।

और आप Here से स्विफ्ट में उदाहरण डाउनलोड कर सकते हैं।

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell , forRowAtIndexPath indexPath: NSIndexPath) { 

} 

इस विधि अपने वर्तमान से प्रदर्शित पंक्ति देता है:

+0

से ऊपर अपना उत्तर देख सकते हैं मैंने कोशिश की लेकिन मेरे कोड पर काम नहीं करने के लिए कोई भी इसे संशोधित करने में मेरी मदद कर सकता है –

+0

मुझे चरण-दर-चरण की आवश्यकता है; ( –

1

आप एक बहुत आसान प्रतिनिधि विधि की जरूरत है। इंडेक्सपैथ का उपयोग करें यह निर्धारित करने के लिए प्रदान करता है कि आप तालिका के निचले भाग के करीब कब हैं। फिर अधिक JSON प्राप्त करें और तालिका को फिर से लोड करें।

38

आप इस विधि का

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
      let lastElement = dataSource.count - 1 
      if indexPath.row == lastElement { 
       // handle your logic here to get more items, add it to dataSource and reload tableview 
       }  
     } 
+0

मुझे वास्तव में आपका विचार पसंद है और यह मेरे लिए काम कर रहा है। लेकिन जब मेरा अंतिम उत्पाद क्वेरी आती है और इसका आधिकारिक तौर पर आखिरी वाला, आपके कोड के साथ यह अभी भी डेटा लाने की कोशिश कर रहा है और टेबल व्यू झटकेदार है। आखिरी आइटम लाए जाने पर इसे रोकने के बारे में कोई विचार? –

+1

@ क्वानस्टैंटिनोनेट्स बहुत आसान है। बस एक और जोड़ने की जरूरत है यह जानने के लिए ध्वज अधिक लोड हो सकता है या नहीं। अगर अभी भी अधिक लोड हो सकता है => मेरा तर्क करें। अगर नहीं => इसे अनदेखा करें। –

+0

यह ध्वज आइटम की कुल गणना हो सकता है, लेकिन मैंने बाद में इसके बारे में सोचा: डी –

3

मैं इस विधि का इस्तेमाल किया उपयोग करने के लिए है और यह, Xcode 8 मुझे

func scrollViewDidScroll(scrollView: UIScrollView) { 
    let offsetY = scrollView.contentOffset.y 
    let contentHeight = scrollView.contentSize.height 

    if offsetY > contentHeight - scrollView.frame.size.height { 


     loadMoreDataFromServer() 
     self.tableView.reloadData() 
    } 
} 
+0

Assalamaleikum प्रिय। यह कोड आईफोन 5 एस में क्यों काम नहीं करता है: scrollView.contentOffset.y == scrollView.contentSize.height - scrollView.frame.size.height? – Zhanserik

10

के लिए काम करता है स्विफ्ट 3

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { 
    let lastElement = dataSource.count - 1 
    if !loadingData && indexPath.row == lastElement { 
     indicator.startAnimating() 
     loadingData = true 
     loadMoreData() 
    } 
} 
+0

स्विफ्ट लोडिंग डेटा लोडमोरेडाटा के कारण सफलतापूर्वक ऐप चलाने की अनुमति नहीं देता है, यह त्रुटि "अनसुलझा पहचानकर्ता का उपयोग" त्रुटि दिखाता है –

+0

@ सईद रहमतोलही जांचें कि सेल पहचानकर्ताओं को सही तरीके से असाइन किया गया है और UITableview –

+0

में उपयोग किया जा सकता है क्या आप इस कोड को संपादित कर सकते हैं कृप्या? मेरे टेबलव्यू कोशिकाओं में मेरे कुछ ग्रंथ हैं जो उन्हें जेसन –

संबंधित मुद्दे