6

UICollectionViewFlowLayout alt sınıfına sahibim ve bu alt sınıfta, UICollectionViewLayoutAttributes çerçevelerini değiştiriyorum, böylece daha büyük veya daha küçük görünecekler - ekrandaki konumlarına bağlı olarak.Animate UICollectionViewFlowLayout alt sınıfı UICollectionViewLayoutAçıklama çerçeve değişiklikleri

ben layoutAttributesForElementsInRect kare değişiklikleri sahnede oluyorum: Ben shouldInvalidateLayoutForBoundsChange yılında EVET iade ediyorum : yanı Ve layoutAttributesForItemAtIndexPath içinde iade

Tüm iyi çalışıyor, ancak hücreler değişiklikleri animasyon yok çerçeve.

Bir şey mi eksik? Değişiklikler neden animasyonlu değil?

Teşekkürler.

+0

Merhaba. Biraz kod ekleyebilir misiniz? Çerçeveleri, konumlarına bağlı olarak daha büyük veya daha küçük olacak şekilde değiştirerek ne demek istiyorsunuz? Kaydırma pozisyonu? (Örneğin, ekranın merkezinde daha geniş) Bunun harika bir şekilde çalıştığı bir örneğim var, bu yüzden başka bir şey ifade ettiğini tahmin ediyorum. Teşekkürler! – smallwisdom

+0

@smallwisdom, 'çerçeve değiştirme', her öğenin niteliklerini değiştirmek anlamına gelir; böylece öğeler en üstte daha büyük görünür ve en üstte (scrollView'ın) yolunda daha küçük görünürler. – Raz

cevap

0

SOLVED.

Herhangi bir "animasyon işlevi" veya benzeri bir şey yoktur, çünkü bir koleksiyon görünümünün öğelerinin çerçevelerini kendi özel (akış) düzeninizin içinde değiştirdiğinizde, animasyon yapamazsınız.

Sorunun çözümü, yöntem layoutAttributesForElementsInRect: 'in sağladığı tüm ilgili çerçeveleri hesaplayan bir algoritma yazmaktır; böylece bir öğenin çerçevesinin ayarlanması, başka bir öğenin çerçevesini saydam bir şekilde ayarlayacak ve eklenen boyutu telafi edecek veya azaltılmış olacaktır. boyut.

İlgili konular