2010-03-26 5 views
5

मेरे ऐप में कुछ तालिका कक्ष हैं जो ऊंचाई में भिन्न होते हैं। कोशिकाओं में UIButton भी उनके सहायक दृश्य के रूप में एक विस्तार प्रकटीकरण बटन (गोल, तीर के साथ नीला) होने के लिए सेट हो सकता है।अलग-अलग ऊंचाइयों के UITableViewCells अलग-अलग एक्स स्थितियों पर उनके एक्सेसरीव व्यू

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

मैंने इंटरफ़ेस बिल्डर में एक दृश्य स्थापित किया है, और दृश्य में एक दृश्य तालिका कक्ष जोड़ा है, अपनी ऊंचाई को विभिन्न मानों पर सेट किया है और फिर प्रत्येक को एक विस्तृत प्रकटीकरण बटन जोड़ा है। न कुछ ज्यादा, न कुछ कम।

यह मैं क्या देख रहा है:

UITableViewCells with different x values http://jasarien.com/jing/accessoryView_x_difference.png

मैं आकार गाइड (Xscope करने के लिए धन्यवाद) जोड़ा ताकि आप गौण दृश्य एक्स पदों में अंतर देख सकते हैं।

ऊंचाइयों हैं:

  • शीर्ष 37px
  • मध्य 68px
  • नीचे 44px (डिफ़ॉल्ट, अछूता ऊंचाई)

अगर मैं ऊंचाई 68px गौण दृश्य के अलावा किसी भी heigher वृद्धि बाईं ओर आगे नहीं बढ़ता है।

क्या यह एक बग है? क्या ऐसा कोई तरीका है जिससे मैं इसे रोकने से रोक सकता हूं?

यहां पुन: पेश करने के लिए परीक्षण प्रोजेक्ट है।

TableViewCellHeightsTest.zip

+0

मैं इसे आईफोन एसडीके 3.0 में पुन: उत्पन्न करने में सक्षम नहीं हूं। यहाँ ठीक काम करता है। क्या आप स्वतंत्र परीक्षण परियोजना अपलोड कर सकते हैं, इसलिए मैं इसे डाउनलोड और परीक्षण कर सकता हूं? –

+0

मैंने प्रश्न में एक लिंक जोड़ा है। – Jasarien

उत्तर

2

मैं जब मैं अपने फ़ाइल डाउनलोड की एक ही समस्या मिला है। इसके बजाय विस्तार प्रकटीकरण बटन मैन्युअल स्थापना और उन्हें दुकानों के रूप में कोशिकाओं को देने की, सभी प्रकटीकरण संकेतक हटा सकते हैं और उन्हें बजाय इस तरह से सेट करने का प्रयास:

alt text http://i44.tinypic.com/35hjq5y.png

+0

हां, मैंने देखा है कि आपने कहा था कि आप इस मुद्दे को नहीं देख रहे थे। हालांकि, मेरे कोड में प्रकटीकरण बटन प्रोग्रामेटिक रूप से बनाए जा रहे हैं और सेल के एक्सेसरी व्यू के रूप में सेट किए गए हैं, इसलिए मैं इंटरफ़ेस बिल्डर में इसे दोहराने की कोशिश कर रहा था। मुझे लगता है कि मैंने सेल के सहायक प्रकार को विस्तार से प्रकटीकरण में सेट करने की सरलता को अनदेखा किया और फिर इसे क्रियान्वित कर दिया ... – Jasarien

+0

यह एक बहुत ही परेशानी की समस्या है। मेरे पास एक ही समस्या है, मेरे सभी सेल कोड को प्रोग्रामेटिक रूप से सेट करना, और सेल ऊंचाई के आधार पर संकेतकों के लिए अलग-अलग पद प्राप्त करना। –

2

नोट: मैं नीले रंग के लिए सामग्री को देखने की पृष्ठभूमि का रंग सेट आसानी से देखने के लिए।

enter image description here

चित्रा 1 (गौण दृश्य ऊंचाई 17.0 है)

मैं इस समस्या का सामना करना पड़ रहा था और मुझे कारण पता लगाने की मदद करने के 2 साथियों के लक्जरी था।

हम पाते हैं कि डिफ़ॉल्ट UITableViewCell (मेरे मामले में, शैली UITableViewCellStyleDefault का उपयोग करते हुए हालांकि मुझे लगता है कि यह अन्य सभी शैलियों पर लागू होता है), यदि आपकी सहायक दृश्य की ऊंचाई जादू संख्या 16.0 से ऊपर कुछ है, तो x की स्थिति सहायक दृश्य सेल की ऊंचाई के भिन्नता के साथ अलग होना शुरू कर देता है।

enter image description here

चित्र 2 (गौण दृश्य ऊंचाई 16.0 है)

मेरे सहयोगी एक कस्टम UITableViewCell लागू किया और सामग्री लेआउट को subviews का उपयोग करने और इस समस्या से बचने के लिए सक्षम था।

  • 16,0 और नीचे करने के लिए अपने सहायक को देखने की ऊंचाई प्रतिबंधित करें:

    तो तुम 3 विकल्प हैं।

  • एक कस्टम UITableViewCell का उपयोग करें और अपनी सामग्री को सबव्यू के रूप में लेआउट करें।
  • डिफ़ॉल्ट सहायक प्रकार का उपयोग करें।

enter image description here

3 चित्र (डिफ़ॉल्ट गौण प्रकार UITableViewCellAccessoryDetailDisclosureButton)

1

मैं एक ही मुद्दा हो रही थी और कस्टम सहायक सेल के रूप में ही ऊंचाई देखने बनाकर यह तय की।

+0

आसानी से सबसे अच्छा जवाब! धन्यवाद! – uvesten

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