एक परीक्षण के रूप में मैंने एक लेआउट बनाया जो लंबवत रेखा में कोशिकाओं को प्रदर्शित करता है और दूसरा जो उन्हें क्षैतिज लेआउट में प्रदर्शित करता है। जब मैं [collectionView setCollectionViewLayout:layout animated:YES];
पर कॉल करता हूं तो यह दो पदों के बीच बहुत साफ रूप से एनिमेट करता है।कस्टम एनीमेशन एक UICollectionViewLayout से दूसरे पर स्विच करते समय?
अब जब कि मैं तरह चाहते करने के लिए, सभी दृश्यों में कुछ स्पिन करना है warps और अंत में अपने गंतव्य पर पहुंचने से पहले स्क्रीन (शायद CAKeyframeAnimations का प्रयोग करके) के आसपास flips, लेकिन मैं एक अच्छा नहीं मिल सकता है में इस हुक करने जगह।
मैं UICollectionViewLayoutAttributes
उपवर्गीकरण एक एनीमेशन संपत्ति को शामिल करने की कोशिश की, तो UICollectionViewCell
मैं उपयोग कर रहा हूँ का एक अधिरोहित applyLayoutAttributes:
विधि में उन एनिमेशन की स्थापना। यह काम करता है ... ऐसा लगता है कि के बाद लेआउट संक्रमण पूरा हो गया है। अगर मैं इसका उपयोग करना चाहता था, तो मुझे लेआउट को तुरंत ऑब्जेक्ट्स की वर्तमान स्थिति में बदलाव नहीं करना पड़ेगा, केवल कोड के लागू होने वाले गुणों तक पहुंचने के बाद, और यह बहुत सारे काम की तरह लगता है ...
या मैं UICollectionView
उपclass कर सकता हूं और setCollectionViewLayout:animated:
ओवरराइड कर सकता हूं, लेकिन यह लेआउट के बीच रखने के लिए बहुत सारे राज्य की तरह लगता है। इन ऑप्टिन्स में से कोई भी सही नहीं लगता है, क्योंकि ऐसेके के भीतर कक्षों के अतिरिक्त/हटाने को एनिमेट करने का एक आसान तरीका है। मुझे लगता है कि एनीमेशन में लेआउट के बीच हुकिंग के लिए कुछ समान होना चाहिए।
क्या कोई मुझे पूरा करने के लिए सबसे अच्छा तरीका जानता है?
क्या आप अपना कोड दिखा सकते हैं? – zakhej