का उपयोग कर संपत्ति मैं एक सटीक इस UIView ब्लॉक आधारित एनीमेशन कोड का "अनुवाद" बनाने के लिए कोशिश कर रहा हूँ:चेतन फ्रेम CABasicAnimation
[UIView animateWithDuration:0.5
delay:0.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
someView.frame = CGRect(0, 100, 200, 200);
}
completion:nil];
CABasicAnimation बजाय का उपयोग कर। http://developer.apple.com/library/mac/#qa/qa1620/_index.html
... और मैं पहले से ही बनाया:
मैं पूरी तरह से पता है कि फ्रेम संपत्ति वास्तव में और अंतर्निहित परत की anchorPoint, के रूप में यह यहाँ वर्णित है स्थिति, सीमा का एक संयोजन है कर रहा हूँ इस तरह का एक समाधान, दो का उपयोग करके CABasicAnimations एक स्थिति सेटिंग, सीमा के लिए एक और यह उस दृश्य के लिए काम करता है।
समस्या यह है कि मेरे पास मेरे दृश्य के अंदर सबव्यूव हैं। कुछ दृश्य में UIScrollView का सबव्यूव है जिसमें मैं अभी भी UIImageView प्रकार का एक और सबव्यूव रखता हूं। UIScrollView सबव्यू में ऑटोरेसाइजिंगमास्कपर सेट UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight। अगर मैं UIView ब्लॉक-आधारित संस्करण का उपयोग करता हूं, तो मैं पूरी तरह से काम करता हूं, हालांकि जब मैं CABasicAnimations का उपयोग करने का प्रयास करता हूं तो सबव्यू अप्रत्याशित रूप से व्यवहार करना शुरू करते हैं (यानी गलत चौड़ाई में आकार बदलना)। तो ऐसा लगता है कि autoresizingMaskCABasicAnimations का उपयोग करते समय सही ढंग से काम नहीं कर रहा है। मैंने यह भी देखा कि सबव्यूज़ को सेटफ्रेम: पर कॉल प्राप्त नहीं होता है, हालांकि पैर की स्थिति में परिवर्तन के बाद मूल दृश्य की फ्रेम प्रॉपर्टी बदल जाती है और सीमाएं बनती हैं।
इसलिए मुझे पता है कि क्या CABasicAnimation कि जब एक UIView के animateWithDuration विधि का उपयोग करता क्या हो रहा है के साथ दोहराने के लिए सही कोड होगा चाहते हैं।
हां, मैंने @ "स्थिति" कीपैथ के लिए दो CABasicAnimimations बनाया है, दूसरा @ "सीमाओं" के लिए। मैंने अपने व्यक्ति को वैल्यू और टूवेल्यू से सेट कर दिया है। फिर मैंने एक CAAnimationGroup बनाया है और इन दो एनिमेशन को इसमें जोड़ा है, जिसके बाद मैं परत में समूह एनीमेशन जोड़ता हूं। अंत में मैंने कुछ वांछित .layer.bounds और someView.layer.position को नए वांछित मानों (toValue में उपयोग किया) पर सेट किया ताकि परिवर्तन वास्तव में मॉडल परत पेड़ में बनी रहे। –
एनीमेशन कुछ दृश्यों के लिए काम करता है, जो एक मुख्य (अभिभावक) दृश्य है जिसमें अन्य सबव्यू शामिल हैं। समस्या यह है कि सबव्यूज़ का आकार बदल नहीं आता है, वे अपनी चौड़ाई रखते हैं जैसे ऑटोरेसाइजिंग मास्क (जो उन पर सेट है) में कोई समस्या है। UIView animateWithDuration का उपयोग करते समय यह सब काम करता है: हालांकि मैं CABasicAnimations का उपयोग करना चाहता हूं क्योंकि मुझे अतिरिक्त कॉन्फ़िगरेशन विकल्प की आवश्यकता है ... –
मैं आपके साथ हूं। मुझे विश्वास है कि क्योंकि आप सीधे परत को एनिमेट कर रहे हैं, आपको मैन्युअल रूप से उपन्यासों की एनीमेशन प्रबंधित करना होगा। – matt