मैं storyboard
और autolayout
का उपयोग कर रहा हूं, और इसी दृश्य नियंत्रक में IBOutlet
के रूप में आईबी में बाधाओं को सेट कर रहा हूं। मैं बाधाओं अपडेट करने का तरीका चित्र में और परिदृश्य में अलग होने की के बारे में कई पदों पढ़ रहा हूँ लेकिन मैं अभी भी मैं यह कैसे करना चाहिए के बारे में सुनिश्चित नहीं कर रहा हूँ:डिवाइस अभिविन्यास बदलते समय प्रोग्रामेटिक रूप से बाधाओं को अद्यतन करने का सही तरीका?
- मैं
-viewWillTransitionToSize:withTransitionCoordinator:
विधि में नए बाधाओं सेट करनी चाहिए, याupdateViewConstraints
विधि में? - जब नए बाधाओं सेट कर रहे हैं, मैं
[self.view setNeedsUpdateConstraints];
बुलाना चाहिए, याlayoutIfNeeded
, याsetNeedsLayout
? मैं कैसे करना चाहिए, उदाहरण के लिए, एक निश्चित बाधा के लगातार:
self.myConstraint.constant = 30.0
या कर रही:
[self.view removeConstraint:self.passwordViewHeight];
self.passwordViewHeight = [NSLayoutConstraint constraintWithItem:self.passwordView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:34.0];
[self.view addConstraint:self.passwordViewHeight];
धन्यवाद अग्रिम में
धन्यवाद। मुझे किस विधि से कॉल करना चाहिए? – AppsDev
यदि आप डिवाइस अभिविन्यास परिवर्तन के लिए अधिसूचना सेट अप करते हैं, तो आप इसे उस कॉल से कॉल करने के लिए अपनी स्वयं की विधि बना सकते हैं। आपको लगता है कि सेट नहीं किया है, आप निश्चित रूप से निम्न कोड के साथ ऐसा करना चाहते हैं जाएगा: '[[NSNotificationCenter defaultCenter] addObserver: स्वयं चयनकर्ता: @selector (yourMethodHere) नाम: UIDeviceOrientationDidChangeNotification वस्तु: शून्य];' – Tyler
होगा ' viewWillTransitionToSize' विधि भी एक अच्छी जगह है? – AppsDev