2014-07-09 11 views
8

मैं इस समय इस दोहराने के लिए कोशिश कर रहा हूँ:प्रतिकृति Google की खोज आईओएस कार्ड एनीमेशन

enter image description here

आप Google के अनुप्रयोग के साथ परिचित हैं, तो यह एक कस्टम प्रवाह लेआउट के साथ एक UICollectionView तरह दिखता है।

मैं एक प्रश्न पर विस्तार कर रहा हूं जो कुछ अतिरिक्त कोड के साथ बंद कर दिया गया है।

Here's the link to the other question.

कस्टम प्रवाह लेआउट वर्ग, मैं एक "खड़ी" प्रभाव एक नकारात्मक न्यूनतम पंक्ति रिक्ति मूल्य की स्थापना, और का उपयोग करके निम्नलिखित बना सकते हैं में:

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect 
{ 
    NSArray *allAttributesInRect = [super layoutAttributesForElementsInRect:rect]; 

    CGPoint centerPoint = CGPointMake(CGRectGetMidX(self.collectionView.bounds), CGRectGetMidY(self.collectionView.bounds)); 

    for (UICollectionViewLayoutAttributes *cellAttributes in allAttributesInRect) 
    { 
     if (CGRectContainsPoint(cellAttributes.frame, centerPoint)) 
     { 
      cellAttributes.transform = CGAffineTransformIdentity; 
      cellAttributes.zIndex = 1.0; 
     } 
     else 
     { 
      cellAttributes.transform = CGAffineTransformMakeScale(0.75, 0.75); 
     } 
    } 

    return allAttributesInRect; 
} 

एनिमेशन नष्ट करने के लिए स्वाइप ठीक काम कर रहे हैं, लेकिन मुझे "स्टैक्ड" लुक बनाने में परेशानी हो रही है, और उसके बाद केवल 1 सेल को दृश्य में खींच कर, जबकि शेष कार्ड को ऊपर रखा गया है, जैसा कि आप ऊपर देखते हैं।

+0

हे। मैं एक ही प्रभाव को दोहराने की कोशिश कर रहा हूं, हालांकि ज्यादा सफलता नहीं है। मुझे कार्ड को UICollectionView/UITableView का हिस्सा बनने की आवश्यकता है ताकि उपयोगकर्ता Google जैसे कुछ कार्ड से अधिक स्क्रॉल कर सके। लेकिन मैं आपको आश्वस्त कर सकता हूं कि जिस तरह से Google ने ऐप बनाया है, वह संग्रह दृश्य के साथ नहीं है। मैंने ऐप में प्रकटीकरण की जांच की है और उन्होंने मूल रूप से केवल विचारों का उपयोग करके एनीमेशन किया है। फिर भी मुझे एक सहकर्मीव्यू की भी आवश्यकता है और एकमात्र तरीका यह है कि मैं इसे देख सकता हूं कि दो लेआउट होने के कारण आप संक्रमण को एनिमेट कर सकते हैं। यह – alex

+0

हालांकि अधिक समय लेता है, जो प्रभाव आप चाहते हैं उसका एक वीडियो या gif आपको जवाब पाने में मदद करेगा। – Segev

उत्तर

0

मुझे इस दृश्य में दो भाग दिखाई देते हैं। 1. "कार्ड" का एक ढेर & 2. ढेर की एक मेज। इसे तोड़कर इसे संभालना इतना आसान हो जाता है।

यह "कार्ड" बनाने के लिए UIView उपclass के लिए बहुत सीधे आगे होना चाहिए (मैं इसे UICardView कहूंगा) जिसे आप खींच सकते हैं। इनमें से एक "ढेर" बनाना बहुत मुश्किल नहीं होना चाहिए। मैं देखता हूं कि इसका सबसे कठिन हिस्सा एक बूंद छाया को कुशलतापूर्वक जोड़ देगा।

दूसरे भाग में कई चलती हिस्से शामिल हैं: इन ढेर को एक टेबल में जोड़ना। वास्तव में, टेबल चिकनी स्क्रॉलिंग और लगातार अंतर के लिए प्रयोग किया जाता है और, असल में, पूरी तरह से पारदर्शी है। heightForRowAtIndexPath: के लिए आपको "कार्ड" के प्रत्येक ढेर के लिए ऊंचाई की गणना करने की आवश्यकता होगी।

यह दृष्टिकोण चिकनी स्क्रॉलिंग, अपेक्षाकृत कम स्मृति पदचिह्न, और सापेक्ष आसानी से अनुकूलन की एक उच्च डिग्री के लिए अनुमति देता है। इसके अतिरिक्त, इन छोटे टुकड़ों को बनाए रखने और सुविधाओं को जोड़ने के लिए आसान होना चाहिए।

संबंधित मुद्दे