2015-11-28 11 views
5

मैं iPhone 4S के लिए एक imageView के लिए एक बाधा को बदलने के लिए कोशिश कर रहा हूँ के साथ एक UIView के लिए बाधाओं, viewDidLoad में 5,5S खोजें:iOS 8 पहचानकर्ता

for (NSLayoutConstraint *constraint in logoImage.constraints) { 
    if ([constraint.identifier isEqualToString:@"logoTopIdentifier"]) { 
     constraint.constant=10; 
    } 
} 

ऐसा लगता है कि यह और भी लूप में पुनरावृत्ति नहीं कर रहा है । पहचानकर्ता के साथ एक विशिष्ट बाधा पाने के लिए कोई और तरीका है?

+0

अगर आप स्टोरीबोर्ड में बाधा जोड़ने के लिए, आप इसे सीधे अपने वर्ग – Surely

+0

को खींच सकते हैं आप क्या मतलब है? – BlackM

+2

आप जानते हैं कि स्टोरीबोर्ड में यूब्यूटन को अपने व्यू कंट्रोलर क्लास में कैसे कनेक्ट करें? आप अपनी व्यू कंट्रोलर कक्षा में बाधा को जोड़ने के लिए ऐसा ही कर सकते हैं। – Surely

उत्तर

4

आप यूआई तत्व को जोड़ने के रूप में स्टोरीबोर्ड में अपनी दृश्य नियंत्रक कक्षा में बाधा को जोड़ सकते हैं।

बस अपने स्टोरीबोर्ड में बाधाएं पाएं, वर्कस्पेस को विभाजित दृश्य में बनाएं, और बाधा को अपने संबंधित दृश्य नियंत्रक वर्ग पर खींचें।

self.theConstraint?.constant = 100 
self.view.setNeedsUpdateConstraints() 
UIView.animateWithDuration(0.7) {() -> Void in 
    self.view.layoutIfNeeded() 
} 

ब्लॉक:

कभी कभी अगर आप स्थिति परिवर्तन चेतन करना चाहते हैं, आप की तरह बाधा अद्यतन कर सकते हैं।

यही है।

1

यहां KVConstraintExtensionsMaster लाइब्रेरी है जिसके द्वारा आप NSLayoutAttribute पर आधारित view से किसी भी स्थिरता तक पहुंच सकते हैं। इससे कोई फर्क नहीं पड़ता कि उस बाधा ने Programmatically या Interface Builder से जोड़ा है।

[self.logoImage accessAppliedConstraintByAttribute:NSLayoutAttributeTop completion:^(NSLayoutConstraint *expectedConstraint){ 
     if (expectedConstraint) { 
      expectedConstraint.constant = 10; 

      /* for the animation */ 
      [self.logoImage updateModifyConstraintsWithAnimation:NULL]; 
     } 
    }]; 
संबंधित मुद्दे