2011-11-30 12 views
26
NSArray * arrayOfVisibleTVC=[BNUtilitiesQuick ListController].tableViewA.visibleCells; 
NSLog(@"array : %@", arrayOfVisibleTVC); 

UITableView.visibleCells के indexpath को कैसे जानें?

"<UITableViewCell: 0x76c22a0; frame = (0 0; 320 75); autoresize = W; layer = <CALayer: 0x76bf770>>", 
"<UITableViewCell: 0x76cfec0; frame = (0 75; 320 75); autoresize = W; layer = <CALayer: 0x769d260>>", 
"<UITableViewCell: 0xe245f70; frame = (0 150; 320 75); autoresize = W; layer = <CALayer: 0xe245ed0>>", 
"<UITableViewCell: 0xe248980; frame = (0 225; 320 75); autoresize = W; layer = <CALayer: 0xe2488c0>>", 
"<UITableViewCell: 0xe24afa0; frame = (0 300; 320 75); autoresize = W; layer = <CALayer: 0xe24aee0>>" 

और इस

UITableViewCell * lastObjectOfArray=arrayOfVisibleTVC.lastObject; 
int indexpathLastObject= (lastObjectOfArray.frame.origin.y/new.frame.size.height); 

मैं arrayOfVisibleTVC.lastObject के अंतिम कि मैं indexpath प्राप्त करने के लिए उपयोग करते हैं पता है के साथ प्रदर्शित करेगा। लेकिन मुझे लगता है कि TableViewcell के इंडेक्सपैथ को पाने का एक और तरीका है जो दिखाया गया .. कोई भी मेरी मदद कर सकता है?

तो मैं पूर्णांक के रूप में सेल के indexpath प्राप्त कर सकते हैं

+3

आप का प्रयास किया था *** indexPathForCell: ** * तरीका? – EmptyStack

उत्तर

49

यहाँ UITableView कक्षा में विधि है:

उद्देश्य-सी

- (NSArray *)indexPathsForVisibleRows 

स्विफ्ट

public var indexPathsForVisibleRows: [NSIndexPath]? { get } 
+1

यह एक बेहतर जवाब प्रतीत होता है जब तक कि मैं गलत नहीं हूं। –

+1

@ रैमिस यह ठीक है जब तक कि आप पंक्तियों को जोड़ने और हटाने के लिए दृश्य पंक्तियों अनुक्रमणिका का उपयोग नहीं कर रहे हैं, जो पंक्तियों को गलत इंडेक्स में जोड़ा या हटा दिया जाता है। –

+0

@AshishPisey प्रश्न दृश्य पंक्तियों के बारे में था और उत्तर दृश्य पंक्तियों के बारे में है। – Ramis

9

UITableView एक सेल के indexPath खोजने के लिए एक विधि है:

- (NSIndexPath *)indexPathForCell:(UITableViewCell *)cell 

बस अपने दिखाई कोशिकाओं सरणी पर पुनरावृति और प्रत्येक कोशिका प्राप्त करने के लिए पारित सूचकांक पथ

for (UITableViewCell *cell in arrayOfVisibleTVC) { 
    NSIndexPath *path = [[BNUtilitiesQuick ListController].tableViewA indexPathForCell:cell]; 
    NSLog(@"%@", path); 
} 
+2

कुछ ऐसा करने के लिए बहुत अधिक कोड है जो बहुत आसान हो सकता है, देखें रामिस उत्तर –

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