2010-04-20 6 views
10

मैं UITableViewCell के रेक्ट आकार को कैसे प्राप्त कर सकता हूं?UITableViewCell के रेक्ट आकार को कैसे प्राप्त करें?

मैं एक पॉप मंडराना हर बार उपयोगकर्ता एक सेल पर क्लिक करता है प्रदर्शित करने के लिए कोशिश कर रहा हूँ, और पॉप मंडराना चाहते हैं हर कोशिका पर केंद्रित करने के लिए दिखाई देते हैं:

[replyPopover presentPopoverFromRect:CGRectMake(77, 25, 408, 68) 
           inView:self.view 
      permittedArrowDirections:UIPopoverArrowDirectionDown 
          animated:YES]; 

उत्तर

38

इस हाल ही में करना था। आपको [tableView rectForRowAtIndexPath] का उपयोग करने की आवश्यकता है।

हालांकि, आपको पकड़ने वाली चीजों में से एक यह है कि जब आप यूआईटीबलव्यू के माध्यम से स्क्रॉल करते हैं तो आपको ऑफसेट का खाता लेने की आवश्यकता होती है (यानी 3000 पिक्सल के रूप में इसकी वाई स्थिति की रिपोर्ट करने वाला कुछ निश्चित रूप से 3000 से ऊपर है UITableView - स्क्रीन पर 3000 पिक्सेल नहीं)।

इस के अलावा, यह स्वाभाविक रूप से सेल के शीर्ष पर दिखाई देगा, ताकि आप गणना करने के लिए सेल के आधे ऊंचाई जोड़ने की जरूरत है।

इस कोड मेरे लिए अच्छी तरह से काम:

CGRect frame = [tableView rectForRowAtIndexPath:indexPath]; 
CGPoint yOffset = self.tableView.contentOffset; 
[self.popoverController presentPopoverFromRect:CGRectMake(frame.origin.x, (frame.origin.y + 45 - yOffset.y), frame.size.width, frame.size.height) 

मेरे मामले में प्रत्येक कक्ष 90 पिक्सल उच्च था, इसलिए '+45' सा। अपनी खुद की सेल ऊंचाई आधा बदलें।

+0

यह एक बढ़िया उपाय है! –

+0

यह बहुत उपयोगी था। मैं गलत एक रगड़ रहा था, मैं मेरे सिर खुर था wiht [[tableView cellForRowAtIndexPath: indexPath] ऊंचाई] - अपने समाधान मैं वास्तव में क्या जरूरत थी। बहुत बहुत धन्यवाद! – Veeru

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