2014-05-12 4 views
6

हटाएं IOS के लिए एक ऐप विकसित कर रहा हूं और मैं ऑटोलाउट ऑन के साथ स्टोरीबोर्ड का उपयोग कर रहा हूं। मेरे दृश्य नियंत्रकों में से एक में 3 लेबल का एक सेट है, और कुछ परिस्थितियों में मैं दूसरा गायब होना चाहता हूं।एक दृश्य छुपाएं और रिक्त स्थान

यदि मैं सेटहाइड का उपयोग करता हूं: TRUE विधि लेबल अदृश्य हो जाता है लेकिन यह अभी भी स्पष्ट रूप से दृश्य में स्थान लेता है।

क्या कोई मुझे सही दिशा में इंगित कर सकता है?

+0

सेट करने की आवश्यकता है तो आपको अन्य लेबलों को फ़्रेम करना होगा – nmh

+0

यह बहुत कठिन होगा क्योंकि एआई बहुत सारे लेबल और कस्टम व्यू ... मैं एंड्रॉइड सार्वजनिक स्थिर अंतिम int GONE: यह दृश्य अदृश्य है, और यह लेआउट उद्देश्यों के लिए कोई स्थान नहीं लेता है –

उत्तर

5

मुझे लगता है कि आप अपने दृश्य नियंत्रक की शीर्षलेख फ़ाइल के साथ बाधा को जोड़ सकते हैं। फिर बाधा को संशोधित करें और परिवर्तन करें।

संपादित:

1) बाधा के लिए IBOutlet बनाएँ।

Image here, cant upload photos for my reputation

2), बाधा को संशोधित उदाहरण के लिए: [viewForUpdate setNeedsUpdateConstraints];

+0

मैं कैसे लिंक कर सकता हूं हेडर फ़ाइल के साथ एक बाधा ?? आप एक ट्यूटोरियल या एक छवि है जो बताएंगे कि कैसे मैं इंटरफ़ेस बिल्डर के साथ ऐसा कर सकते हैं क्या है ?? –

+0

यह एक सुपर स्पष्ट उत्तर नहीं है, लेकिन मुझे लगता है कि @Simon एक ऑटो लेआउट खड़ी बाधा बनाने का सुझाव दे रहा है, यह करने के लिए एक आउटलेट (जिस तरह से आप किसी भी आउटलेट होगा) तो vc में है कि बाधा को संशोधित करने और बनाने। (यहाँ की तरह: http://stackoverflow.com/questions/12622424/how-do-i-animate-constraint-changes) – danh

+0

बहुत बहुत शुक्रिया मेरे दोस्त !!!! –

2

आप अपने फ्रेम का समायोजन करके अन्य दृश्यों को स्थानांतरित करने की आवश्यकता होगी: self.yourConstraint.constant = 0.0;

3) नई बाधा प्रतिबद्ध होते हैं। यह सीधे किया जा सकता है, या ऑटो लेआउट का उपयोग करके, उन्हें छिपे हुए दृश्य को लंबवत दूरी बाधा देकर।

यदि छुपा/प्रदर्शन दृश्य पर निर्भर कई अन्य विचार हैं, तो एक अन्य सबव्यूव बनाएं जिसमें सभी आश्रित विचार शामिल हैं। आश्रित विचार उस माता-पिता पर स्थिर रूप से लेआउट कर सकते हैं, और उस अभिभावक के पास यह फ्रेम समायोजित हो सकता है (फिर से, या तो सीधे या ऑटो लेआउट के माध्यम से)।

view 
| 
--- view to hide 
| 
--- common parent (move this with auto layout or directly) 
    | 
    --- subview's with position dependent on view to hide 
    --- ... 
1

यह देर से उत्तर/समाधान है, लेकिन मैंने अभी एक श्रेणी बनाई है जो केवल काले रंग की जगहों के बिना दृश्य छुपा रही है।

https://github.com/neevek/UIView-Visibility

2

इस संभाल करने के लिए सबसे आसान और सबसे प्रभावी तरीका ढेर दृश्य का उपयोग कर रहा है। एक क्षैतिज/ऊर्ध्वाधर (अभिविन्यास वे आपके यूआई पर दिखाई देने वाले) में लेबल डालें और स्टैक व्यू आंतरिक रूप से अंतराल का ख्याल रखेगा। संरेखण जैसे अतिरिक्त गुण, आवश्यकता के अनुसार रिक्ति को tweaked किया जा सकता है। सुनिश्चित करें कि आप स्टैक व्यू और आसन्न तत्वों के बीच बाधाओं को दोबारा स्थापित करते हैं क्योंकि एक बार दृश्यों को स्टैक व्यू में जोड़ा जाता है, यदि सभी बाधाओं को

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