मैंने IB में बाधाओं के कई सेट किए हैं, और मैं कुछ राज्य के आधार पर प्रोग्राम के बीच उनके बीच टॉगल करना चाहूंगा। वहाँ एक constraintsAआउटलेट संग्रह है, जो सभी आईबी से स्थापित के रूप में चिह्नित हैं, और एक constraintsBआउटलेट संग्रह जिसमें से सभी को आईबी में अनइंस्टॉल किया गया है।
मैं प्रोग्रामेटिक रूप से दो सेटों के बीच टॉगल कर सकता हूँ जैसे:
NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)
लेकिन ... मुझे यह पता नहीं चल सकता कि कब क्या करना है। ऐसा लगता है कि मुझे एक बार ऐसा करने में सक्षम होना चाहिए viewDidLoad, लेकिन मुझे वह काम नहीं मिल सकता है। मैंने कॉल करने की कोशिश की है view.updateConstraints()और view.layoutSubviews()बाधाओं को सेट करने के बाद, लेकिन कोई फायदा नहीं हुआ।
मुझे लगता है कि अगर मैं viewDidLayoutSubviewsअपेक्षा के अनुसार काम करता हूं, तो मैंने बाधाओं को निर्धारित किया । मुझे लगता है कि मैं दो बातें जानना चाहता हूं ...
- मुझे यह व्यवहार क्यों मिल रहा है?
- क्या viewDidLoad से बाधाओं को सक्रिय / निष्क्रिय करना संभव है?