ios

2017-01-16 12 views
7

आदेश UIStackView में एक subview बेहतर सत्य पर isHidden स्थापित करने के लिए या removeArrangedSubview का उपयोग करें और माता पिता Stackview बजाय से subview दूर करने के लिए है छिपाने के लिए में में UIStackview में subview छिपाई जा रही है?ios

मैं तालिका दृश्य कक्ष में अपने UIElements की व्यवस्था करने के लिए एक स्टैकव्यू का उपयोग कर रहा हूं। वर्तमान में मेरे पास एक अभिभावक स्टैकव्यू है और एक बाल स्टैकव्यू अंदर व्यवस्थित है। बच्चे के दृश्य को किसी शर्त के आधार पर दिखाया या छुपाया जाना चाहिए। जब स्थिति सही हो जाती है तो मैं isHidden बच्चे के दृश्य की संपत्ति को सत्य पर सेट कर रहा हूं।

जब मैं स्क्रॉल करता हूं और नई कोशिकाएं दिखाई देती हैं मुझे कंसोल में निम्न संदेश मिलते हैं। ऐप क्रैश नहीं होता है।

NSLayoutConstraint: 0x600000093470 'UISV-कैनवास-कनेक्शन' UIStackView: 0x7fd4527201b0.top == UILabel:। 0x7fd452720370'Day बंद - आराम और नींद ... 'शीर्ष (सक्रिय)

एक बनाओ UIViewAlertForUnsatisfiableConstraints पर डीबगर में इसे पकड़ने के लिए प्रतीकात्मक ब्रेकपॉइंट। <UIKit/UIView.h> में सूचीबद्ध UIView पर UIConstraintBasedLayoutDebugging श्रेणी में विधियां भी उपयोगी हो सकती हैं। [लेआउट कॉन्स्ट्रेनेंट] बाधाओं को एक साथ संतुष्ट करने में असमर्थ। शायद निम्न सूची में से कम से कम एक बाधा है जिसे आप नहीं चाहते हैं।
इस प्रयास करें: प्रत्येक बाधा पर

  1. देखो और यह पता लगाने की है जो आप की उम्मीद नहीं है की कोशिश;
  2. उस कोड को ढूंढें जो अवांछित बाधा या बाधाओं को जोड़ता है और इसे ठीक करता है। ( "", "", "", "", "", "", "" )

बाधा

+1

कौन सा दृष्टिकोण बेहतर है, इस बारे में अधिकतर प्रश्नों की तरह, उत्तर आपकी विशेष स्थिति पर निर्भर करेगा। क्या आप कुछ और विवरण प्रदान कर सकते हैं? – Jim

+0

धन्यवाद जिम, मैंने एक एक पेरेंटस्टैक व्यू और एक चाइल्डस्टैकव्यू एक दूसरे के भीतर जोड़ा है। मुझे एक शर्त के आधार पर बाल स्टैकव्यू को छिपाने की आवश्यकता है। जब मैं बच्चे को स्टैकव्यू के सत्य पर सेट करता हूं, तो मुझे एक्सकोड के कंसोल लॉग में निम्न संदेश मिलता है। हालांकि यह ऐप को दुर्घटनाग्रस्त नहीं करता है। मुझे यह त्रुटि मिलती है बाधाओं को एक साथ संतुष्ट करने में असमर्थ। शायद निम्न सूची में से कम से कम एक बाधा है जिसे आप नहीं चाहते हैं।\t बाधा को तोड़ने से पुनर्प्राप्त करने का प्रयास – jay

+0

जय, आगे बढ़ें और अपना प्रश्न संपादित करें और लोगों को कोई विवरण न देने के लिए इसे कम करने से पहले उस विवरण को जोड़ें। साथ ही, मान लीजिए कि बच्चे का स्टैक व्यू दूर हो जाता है (आप इसे छुपाते हैं या हटाए गए अरुंगेडस्यूब्यू का उपयोग करते हैं)। क्या आप कभी वापस आना चाहते हैं? – Jim

उत्तर

8

तोड़ने का उत्तर देने के द्वारा ठीक करने के लिए प्रयास करेंगे आपका पहला प्रश्न, अगर आपको सबव्यूव को अनदेखा करने की आवश्यकता नहीं है, तो सबसे तार्किक बात यह है कि removeArrangedSubview(UIView) का उपयोग करके इसे निकालना होगा। जैसा कि आप जानते हैं, जब भी दृश्य जोड़े जाते हैं, हटाए जाते हैं, डाले जाते हैं, या छुपा/अप्रयुक्त होते हैं, तो स्टैक व्यू स्वचालित रूप से अपने लेआउट को अपडेट कर देगा।

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

उम्मीद है कि मदद करता है।

+0

जिम धन्यवाद, यह एक वैचारिक स्पष्टता प्राप्त करने में मदद करता है। मैंने सोचा कि वे संबंधित थे क्योंकि मैंने स्टैकव्यू लागू करने के बाद इन संदेशों को कंसोल में देखना शुरू कर दिया था। – jay

+0

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

+0

किया गया !, मैंने जवाब चिह्नित किया है। और छवि दृश्य में नहीं होने वाली छवि के कारण बाधा त्रुटियां दिखाई दे रही थीं। एक बार जब मैंने तय किया कि बाधा त्रुटियां भी गायब हो गई हैं। – jay