2009-05-23 8 views
23

किसी आईफोन पर, जब आप एक निश्चित एक्सेसरी व्यू (प्रकटीकरण संकेतक इत्यादि) दिखा रहे हैं, तो तालिका तालिका की सामग्री दृश्य की चौड़ाई को कैसे समझते हैं?UITableViewCell की सामग्री किसी दिए गए एक्सेसरीज़ प्रकार के साथ दृश्य की चौड़ाई

मुझे रैपिंग, चर-लंबाई वाले टेक्स्ट वाले कक्षों के लिए सही सेल ऊंचाई की गणना करने के लिए इसकी आवश्यकता है। लेकिन जब तालिका दृश्य प्रतिनिधि को सेल ऊंचाई के लिए पूछा जाता है, तो वास्तव में वास्तविक सेल उदाहरण नहीं होता है, इसलिए यह केवल सामग्री दृश्य सीमाओं से सीधे पूछताछ नहीं कर सकता है।

मैं दाईं तरफ एक 20-पिक्सेल मार्जिन को हार्ड-कोड कर सकता हूं जो एक प्रकटीकरण संकेतक के साथ पोर्ट्रेट अभिविन्यास में एक सादे शैली तालिका दृश्य के लिए सटीक प्रतीत होता है, लेकिन यह सही तरीका करना पसंद करता है ताकि यह रख सके अगर ऐप्पल मार्जिन को ट्विक करने का फैसला करता है तो काम कर रहा है।

(यह this question से संबंधित है।)

उत्तर

2

व्यक्तिगत रूप से, मैं केवल मूल्यों को कड़ी मेहनत करता हूं - सरल और चीजें अनुमानित तरीके से टूट जाएंगी।

लेकिन क्या मैं इसे प्रोग्रामेटिक रूप से करने के लिए किया गया था, मैं एक UITableViewCell बनाउंगा, संपादन गुणों/एक्सेसरीज़ दृश्यों को स्थापित करने के लिए आपको आवश्यकता होगी, और फिर पूछें कि इसकी सामग्री कितनी बड़ी है।

बेशक मैं शायद इसे भारी कैश करूँगा - पूछताछ करते समय आवंटन करते हुए UITableView आपको ऊंचाई की जानकारी के लिए पूछता है जैसे यह धीमा हो जाएगा (हालांकि पहले के रूप में एक प्रोफाइलर के साथ जांचें)।

+0

हाँ, मैंने इसे हार्डकोडिंग समाप्त कर दिया (यह 20 पिक्सल है)। मुझे लगता है कि मैंने एक डमी सेल बनाने की कोशिश की जैसे आपके द्वारा वर्णित किया गया था, और, अगर मैं सही तरीके से याद कर रहा हूं, तो यह काम नहीं करता है। मुझे लगता है कि लेआउट केवल तब सेट हो जाता है जब एक सेल वास्तव में तालिका दृश्य में प्रदर्शित होता है। –

+0

ओह ठीक है! सुनने के लिए खुशी हुई कि आपको एक समाधान मिला है। –

0

मैं UITableViewCell का एक उपवर्ग है कि अपने सभी उसके उप-तत्व धारण करना होगा। जब कक्ष प्रवेश करता है और संपादन मोड मौजूद होता है तो आप कुछ तत्वों के फ्रेम को व्यवस्थित कर सकते हैं। एक कस्टम टेबल व्यू सेल बनाने के अनुभाग के तहत ऐप्पल की टेबल व्यू प्रोग्रामिंग गाइड में इसका एक अच्छा उदाहरण है।

0

मुझे विश्वास है कि UITableViewCell की सामग्री देखें संपत्ति देखें वह दृश्य है जिसमें आपके लेबल इत्यादि शामिल हैं, इसलिए इसकी चौड़ाई आपके उपलब्ध आकार का उपयोग करने के लिए होनी चाहिए।

+0

समस्या यह है कि तालिका दृश्य प्रतिनिधि को उन कोशिकाओं की ऊंचाइयों को जानने की आवश्यकता होती है जो दिखाई नहीं दे रहे हैं, और इस प्रकार सामग्री वास्तविकता प्राप्त करने के लिए कोई वास्तविक सेल उदाहरण नहीं है। मुझे लगता है कि मैं सिर्फ _a_ दृश्यमान सेल की सामग्री प्राप्त कर सकता हूं और मान लें कि अन्य सभी कक्षों में एक ही सामग्री होगी चौड़ाई देखें। –

+0

आप प्रतिनिधि से ऊंचाई विधि को हटाने का प्रयास कर सकते हैं, फिर बाद में UITableView –

+0

@Ed में विधि का उपयोग करके सेल सेट अप करते समय ऊंचाई सेट करें - यह काम नहीं करेगा क्योंकि तालिका दृश्य प्रतिनिधि को तालिका दृश्य को बताना होगा उनके सेट अप होने से पहले सभी कोशिकाओं की ऊंचाई ताकि स्क्रॉल व्यू सही आयाम प्राप्त कर सके। –

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