2010-08-03 11 views
8

तो, मेरे पास यह UITableView है। यह एक आईपैड एप्लिकेशन में है। कुछ कोशिकाओं में दाईं ओर एक सहायक बटन होता है (छोटा गोल तीर)। जब इसे दबाया जाता है, तो मैं एक पॉपओवर दृश्य प्रस्तुत करता हूं जहां उपयोगकर्ता तालिका कक्ष से संबंधित क्रियाओं का चयन कर सकते हैं। अब तक, इनमें से कुछ भी मुश्किल या असाधारण नहीं है।एक निश्चित UITableViewCell के स्क्रीन निर्देशांक प्राप्त करें?

लेकिन पॉपओवर व्यू जानना चाहता है कि यह कहां से निकलता है, ताकि वह वहां इंगित करने वाले छोटे तीर को खींच सके। मैं स्वाभाविक रूप से उस तीर को टेबल सेल पर इंगित करने के लिए पसंद करूंगा जो पॉपओवर से संबंधित है।

तालिका में किसी निश्चित सेल के लिए स्क्रीन पर समन्वय वर्तमान में कैसे पता लगाया जा सकता है, क्योंकि मुझे पता है कि यह इंडेक्सपैथ है?

उत्तर

28

UITableView विधि -rectForRowAtIndexPath: का उपयोग करें। ध्यान दें कि तालिका दृश्य के समन्वय प्रणाली के भीतर एक रेक्ट लौटाता है-यदि आपको उसी विंडो में किसी अन्य दृश्य के सापेक्ष आयत की आवश्यकता है, तो UIView विधि -convertRect:fromView: का उपयोग करें।

+4

मेरे भगवान, यह इतना आसान है! मैं सभी गलत स्थानों में देख रहा होगा। –

+1

उस के साथ सावधान रहें, यदि UITableCell नीचे स्क्रीन बंद है, तो यह आपको तालिका दृश्य के भीतर वाई समन्वय प्रदान करेगा, वास्तविक स्क्रीन समन्वय नहीं। अन्यथा यह विधि बहुत अच्छा काम करता है! – TChadwick

+0

यह विधि आपको स्क्रॉलव्यू से ऑफसेट देता है, तालिकादृश्य में शामिल हैं। तो आपको सही आकार मिल जाएगा लेकिन यदि आपकी तालिका देखें तो यह आपके दृश्य के शीर्ष पर स्थित नहीं है, यह इसकी गणना नहीं करेगा। अगर आप नीचे स्क्रॉल करते हैं, तो यह विधि उस पर सम्मान नहीं करेगी। –

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