2014-07-09 30 views
8

Ben şu anda bu çoğaltmak çalışıyorum: Google'ın uygulamasıyla aşina isenizÇoğaltma Google'ın Arama iOS Kartları Animasyon

enter image description here

, bir özel akış düzeni ile UICollectionView benziyor.

Bazı ek kodlarla kapatılmış bir soruyu genişletiyorum.

- (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; 
} 

animasyonlar silmek için hızlıca kaydırmak: özel akış düzeni sınıfında, aşağıdaki negatif asgari satır aralığı değerini ayarlama ve kullanarak bir "yığılmış" etkisi yaratabilir yılında

Here's the link to the other question.

Tamamen çalışıyoruz, ancak "yığılmış" görünüm oluşturmakta sorun yaşıyorum ve daha sonra yukarıda gördüğünüz gibi kalan kartları saklarken, sadece 1 hücre görünümünde sürükleyerek.

+0

hey. Aynı etkiyi çoğaltmaya çalışıyorum, ancak çok fazla başarı gösteremiyorum. UICollectionView/UITableView'ın bir parçası olmak için kartlara ihtiyacım var, böylece kullanıcı google gibi bazı kartlardan daha fazlasını kaydırabilir. Ancak Google'ın bu uygulamayı oluşturduğu koleksiyonun koleksiyon görünümünde olmadığını size garanti edebilirim. Uygulamayı Reveal'de kontrol ettim ve temel olarak sadece görüntülemeyi kullanarak animasyonu yaptım. yine de bir colletionview'a ihtiyacım var ve bunu yapabildiğimi görebilmemin tek yolu, aradaki geçişi canlandırabilmen iki düzene sahip olmak. – alex

+0

Ancak bir video ya da aradığınız efsane bir cevap almak yardımcı olur. – Segev

cevap

0

Bu görünüme iki bölüm görüyorum. 1. Bir yığın "kart" & 2. Yığınların bir tablosu. Bunun gibi yıkmak, işlenmeyi çok daha kolay hale getirir.

UIView alt sınıfına geçmek için bir "kart" (ben bunu UICardView olarak adlandırıyorum) oluşturmak üzere alt sınıflara doğru ilerlemelisiniz. Bunlardan bir “yığın” yaratmak da çok zor olmamalı. Bunun en zor kısmı, etkili bir gölge eklemek olacaktır.

İkinci bölüm birçok hareketli parça içerir: bu yığınları bir tabloya eklemek. Gerçekten, masa düzgün kaydırma ve tutarlı aralık için kullanılır ve aslında tamamen şeffaftır. heightForRowAtIndexPath: için her bir "kart" yığınının yüksekliğini hesaplamanız gerekir.

Bu yaklaşım, düzgün kaydırma, nispeten düşük bellek ayak izi ve göreceli kolaylıkla yüksek derecede özelleştirme sağlar. Ayrıca, bu küçük parçaların bakımı ve özellikleri eklenmesi kolay olmalıdır.