2013-02-16 37 views
6

मैं UIColloectionView के नीचे UIRefreshControl कैसे जोड़ूं? इसका मतलब यह है कि जब स्क्रॉल अप (पुराने डेटा या कुछ देखने के लिए) आता है तो यह कैसे काम करता है?UIRefreshControl?

उत्तर

4

यहाँ UIScrollView वर्ग (UICollectionView वर्ग के माता-पिता) को लागू करने वाली bottomRefreshControl संपत्ति के लिए एक CCBottomRefreshControl वर्ग है। यह आईओएस 6 और 7 देशी ताज़ा नियंत्रण दोनों के साथ संगत है।

-2

आप नहीं कर सकते। आप वास्तव में UIRefreshControl को कस्टमाइज़ नहीं कर सकते हैं।

9

आप ऐसा करने के लिए UIRefreshControl का उपयोग नहीं कर सकते हैं, लेकिन यदि आप एक सरल समाधान के साथ ठीक हैं, तो आप नीचे स्क्रॉल करते समय स्वचालित रूप से अधिक डेटा लोड करने के लिए अपना संग्रह दृश्य सेट कर सकते हैं। (संयोग से, यह एक बहुत ही आम उपयोगकर्ता इंटरफ़ेस है ... रीफ्रेश करने के लिए पुल सामान्य नहीं है, लेकिन जब आप नीचे दबाते हैं तो स्वचालित रूप से अधिक डेटा पुनर्प्राप्त करना होता है।)

इसका सबसे प्राचीन प्रतिपादन जवाब देना होगा UIScrollViewDelegate विधि के लिए और तय करें कि आप संग्रह को देखने के नीचे करने के लिए स्क्रॉल किया गया है (जो, अपने आप में, UIScrollView का एक उपवर्ग):

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height) 
    { 
     if (!self.isLoadingMoreData) 
     { 
      self.loadingMoreData = YES; 

      // proceed with the loading of more data 
     } 
    } 
} 

और भी बेहतर, आप लोड करने के लिए और अधिक डेटा है, तो शो नीचे एक सेल, जो कहता है "कृपया प्रतीक्षा करें, अधिक डेटा लोड हो रहा है", शायद UIActivityIndicatorView के साथ। उदाहरण के लिए, यदि आपके पास लोड करने के लिए अधिक डेटा है, तो इस सेल के साथ अंत में एक सेक्शन जोड़ें। यदि आप इस अतिरिक्त सेल को सही तरीके से प्रारूपित करते हैं (उदा। एक एकल सेल जो संग्रह दृश्य में सभी तरह से जाता है), यह निश्चित रूप से उस प्रभाव को प्रस्तुत कर सकता है जिसे आप ढूंढ रहे हैं।

+0

क्या आपके पास यह सूचना देने के लिए नमूना कोड है? स्क्रॉल करने पर स्क्रॉल करते समय मैं डेटा लोड करता हूं और सब कुछ ठीक काम करता है। डेटा लोड होने पर मुझे बस अधिसूचना की आवश्यकता है। इस अधिसूचना को करने के लिए अतिरिक्त सेल लोड करना इतना आसान नहीं है। धन्यवाद! –

+1

@ एस बिर्कलिन - मुझे लगता है कि आपके संदेह से यह आसान है। बस अपना 'नंबरऑफरोफोरसेक्शन' एक अतिरिक्त पंक्ति लौटाएं (मान लें कि आपके पास लाने के लिए अतिरिक्त डेटा है)। फिर 'cellForRowAtIndexPath' यह देख सकता है कि यह मौजूदा डेटा की सीमा से परे चला गया है और यदि ऐसा है तो "लोडिंग" सेल दिखाएं। सरल चित्रण के लिए https://github.com/robertmryan/UITableView-Bottom-Refresh देखें। – Rob

+1

यह स्वीकार्य उत्तर होना चाहिए –

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

  • कोई संबंधित समस्या नहीं^_^