2011-07-21 10 views
9

मैं यह पता लगाने की कोशिश कर रहा हूं कि उपयोगकर्ता UITableView के नीचे स्क्रॉल किया गया है ताकि मैं कुछ अतिरिक्त सामान कर सकूं। चीजों की सही गणना करने के लिए, मुझे UITableView के दृश्यमान आय प्राप्त करने की आवश्यकता है। इसे कैसे प्राप्त किया जा सकता है?मैं UITableView के दृश्यमान आय को कैसे प्राप्त कर सकता हूं?

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ 

    [_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView]; 

    int currentMaxPosition = CGRectGetMaxY([self.tableView visibleRect]); 
    int currentMinPosition = CGRectGetMinY([self.tableView visibleRect]); 

    int tableViewBottom = [self.tableView bounds].size.height - 100; 
    int tableViewTop = 0; 

    //get older messages once we're near the bottom 
    if (currentMaxPosition > tableViewBottom - 100) 
    { 
     NSLog(@"WE AT THE BOTTOM!"); 
    }  

} 

उत्तर

2

आप [tableView visibleCells] में जाँच tableView indexPathsForVisibleRows] में दिखाई दे सेल या हो और उपयोगकर्ता नीचे करने के लिए स्क्रॉल करता है, तो यह निर्धारित करने के सकता है।

+0

दृश्यमान के आधार पर मैं कैसे निर्धारित करूं कि उपयोगकर्ता नीचे है या नहीं? –

+0

इन पंक्तियों –

0
-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ 

     int i=0; 

     i=indexPath.row; 

     int count=[urTablearray count]; 

     if (count == (++i)) { 

       //do ur stuff here 

     } 


    } 
+0

के लिए इंडेक्स पथ प्राप्त करने के लिए '- (NSArray *) indexPathsForVisibleRows' का उपयोग करें, जो कोड संकलित नहीं होता है, आप indexPath.row जैसे रीडोनली विशेषता को संशोधित नहीं कर सकते हैं। –

+0

अब चेक आउट करें ............... –

+0

यह काम करता है या –

0

यदि आप नीचे पहुंचने पर अधिक सेल्स को लोड करना चाहते हैं तो यह post आज़माएं।

असल में क्या आप जानते हैं कि कितने पंक्तियों तालिका दृश्य, कितने वर्गों आदि, वर्तमान में उपयोग में हैं:

- (NSInteger)numberOfSections 

- (NSInteger)numberOfRowsInSection:(NSInteger)section 

तुम भी इस्तेमाल कर सकते हैं:

- (NSArray *)indexPathsForVisibleRows 

सूचकांक रास्तों यह पता लगाने की

01: तल के पास कोशिकाओं की ..

तो निम्नलिखित UITableViewDelegate विधि का उपयोग

और indexPath मान का उपयोग करें और नीचे इंडेक्स के "निकट" के साथ इसकी तुलना करें। यदि नीचे के पास, कुछ कार्य करें, जैसे अधिक सामग्री लोड करें।

कुछ ऐप्स में manually load additional content पर "समर्पित लोड करें" सेल समर्पित है। यह दृष्टिकोण आगे बढ़ना आसान है, और यह आपके ऐप में 'अधिक सामग्री लोड करने' कार्यक्षमता को मान्य करता है।

18

एक UITableView केवल एक UIScrollView सबक्लास है, इसलिए सभी सामान्य UIScrollView विधियां लागू होती हैं, उदा। एक UITableView के दृश्य रेक्ट बस अपनी सीमा है:

CGRect visibleRect = [myTableView bounds]; 

visibleRect की उत्पत्ति बस contentOffset है, इसलिए एक और दृष्टिकोण का उपयोग कर सकते है:

CGFloat distanceFromBottom = [self.tableView contentSize].height - [self.tableView contentOffset].y; 
+0

दूरी है जब मैं इसे –

+0

प्रिंट करता हूं तो बिल्कुल ठीक है 0 धन्यवाद, धन्यवाद! –

+0

उत्कृष्ट। '- [UITableView सीमाएं] 'सही है अगर किसी कारण से किसी को टेबलव्यू के दृश्यमान भाग की आवश्यकता होती है लेकिन इसकी पूर्ण लंबाई (जिसमें अदृश्य पंक्तियां शामिल होंगी) सामग्री आयत (जिस स्थिति में' - [UITableView फ्रेम] ') का उपयोग करें। –

2

मैं एक छवि दिखाने के लिए कोशिश कर रहा था जब मैंने एक सेल पर टैप किया, और मैं इसे दिखाने के लिए फ्रेम ढूंढना चाहता था (टेबलव्यू की वर्तमान स्थिति प्राप्त करें)।

मैं निम्नलिखित का इस्तेमाल किया और यह काम किया:

//originalImageViewFrame is the CGRect that I use for my new view that I want to add to the view. 
    originalImageViewFrame.origin = CGPointZero; 
    originalImageViewFrame.size = self.tableView.contentSize; 

आशा है कि यह मदद की।

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