पर एनिमेट करता है मैंने कभी भी ऑटोलायआउट बाधाओं के साथ कभी काम नहीं किया है। मेरे पास एक छोटा सा ऐप है जिस पर मैं काम कर रहा हूं और देखा कि एनआईबी के विचार ऑटोलायआउट के लिए डिफ़ॉल्ट हैं। तो, मुझे लगा कि मैं के साथ काम करने का अवसर लेता हूं और यह पता लगाने की कोशिश करता हूं कि ऐप्पल इसके साथ कहां जा रहा है।आईओएस: कैसे नया ऑटोलायआउट बाधा (ऊंचाई)
सबसे पहले चुनौती:
मैं एक MKMapView का आकार बदलना होगा और मैं नए स्थान पर ले चेतन करना चाहते हैं।
[UIView animateWithDuration:1.2f
animations:^{
CGRect theFrame = worldView.frame;
CGRect newFrame = CGRectMake(theFrame.origin.x, theFrame.origin.y, theFrame.size.width, theFrame.size.height - 170);
worldView.frame = newFrame;
}];
... तो MKMapView 'तस्वीर' अपनी मूल ऊंचाई जब भी एक भाई को देखने के लिए अद्यतन हो जाता है (मेरे मामले में एक UISegmentedControl के शीर्षक अद्यतन किया जा रहा है होगा: मैं इस तरह से करना अगर मैं करने के लिए इस्तेमाल कर रहा हूँ [myUISegmentedControl setTitle:newTitle forSegmentAtIndex:0]
)।
तो, मैं क्या सोचता मुझे क्या करना UISegmentedControl के शीर्ष के सापेक्ष होने के जनक दृश्य के hight के बराबर होने से MKMapView की कमी बदल गया है कि यह को कवर किया गया हैं: V:[MKMapView]-(16)-[UISegmentedControl]
जो मैं चाहता हूं वह MKMapView ऊंचाई को छोटा करने के लिए है ताकि मानचित्र दृश्य के नीचे कुछ नियंत्रण प्रकट हो जाएं। ऐसा करने के लिए मैं सोचता हूं मुझे एक निश्चित पूर्ण आकार दृश्य से बाधा को बदलने की आवश्यकता है, जहां नीचे UISegmentedControl के शीर्ष पर बाध्य है ... और मैं इसे एनिमेट करना चाहता हूं क्योंकि दृश्य नए आकार में घटता है।
कोई इस बारे में कैसे जाता है?
[UIView animateWithDuration:1.2f
animations:^{
self.nibMapViewConstraint.constant = -170;
}];
और nibMapViewConstraint
नीचे कार्यक्षेत्र अंतरिक्ष बाधा को आईबी में वायर्ड है: -
संपादित इस एनीमेशन नहीं एनिमेट हालांकि दृश्य के निचले भाग तक 170 तुरन्त ले जाने करता है।
मुझे पता है कि आप आसानी से एक [UIView animateWithDuration में बाधा के लगातार मूल्य बदल सकते हैं साथ containerView की ऊंचाई बाधा अद्यतन करने के लिए। ।] ऊंचाई परिवर्तन को एनिमेट करने के लिए ब्लॉक। आपको उस बाधा के लिए एक आईबीओलेट बनाने की आवश्यकता है और इसे अपने xib में हुक करें, या अन्यथा इसे संदर्भ में रखें यदि आपने इसे कोड में बनाया है (या इसके लिए सभी बाधाओं के माध्यम से लूप)। निश्चित नहीं है कि संबंधित परिवर्तनों को कैसे एनिमेट किया जाए, लेकिन मैंने पढ़ा है कि आपको केवल स्थिरता बदलनी चाहिए, न कि बाधा के अन्य मूल्यों (अन्य मानों के लिए, एक नई बाधा बनाएं)। – yuf
हम्म। सोचा कि मैं कर सकता था लेकिन मैं एनिमेटिंग नहीं कर रहा हूँ। यह एनीमेशन ब्लॉक में बदलता है, सफलतापूर्वक, और है, लेकिन * एनिमेटिंग नहीं है! – Meltemi
मेरा उत्तर यहां मिला: –
Meltemi