6

Özel bir UICollectionViewLayout, kendiliğinden boyutlandırma mekanizmasını iOS 8'de kullanmaktadır. Benim UICollectionViewCell 'un preferredLayoutAttributesFittingAttributes değerini, otomatik düzen kullanılarak hesaplanan tercih edilen boyutlarını döndürmesi. Bu iyi çalışıyor. Bununla birlikte, ek görünümler için çalışmak üzere preferredLayoutAttributesFittingAttributes beklemekteydim, ama asla çağrılmadı. Sonuçta UICollectionReusableView'da tanımlanmıştır.preferredLayoutAttributesFittingAttributes ek görünümler için çağrılmadı

Bu mekanizma yalnızca hücreler içinse, özel bir numaralı ek görüntüyü boyutlandırmak için otomatik mizanpajı kullanmanın doğru yolu nedir?

cevap

1

preferredLayoutAttributesFittingAttributes kadar uzun onlar UICollectionViewLayout alt sınıfta aşağıdaki kurallara uygun olarak ek görünümlerde çağrılacak (bildiğim kadarıyla söyleyebilirim!):

  1. ek görünümü olmayan ile dışarı yatırılır prepareLayout
  2. Düzen özelliklere sıfır çerçeve layoutAttributesForSupplementaryViewOfKind:atIndexPath:
  3. ek görünümde ilave görünümü verilmektedir layoutAttributesForElementsInRect:
  4. Son olarak uygun görülebilir, en tamamlayıcı görünüm Özetle dequeueReusableSupplementaryViewOfKind:forIndexPath:

aracılığıyla dequeued edildiğinde emin elementKind sizin CollectionView'ın collectionView:viewForSupplementaryElementOfKind:atIndexPath: kadar eşleşir: UICollectionViewLayout kötü canavar ama eğer ek görünümü en preferredLayoutAttributesFittingAttributes arayarak edilmelidir terbiye.

+0

Ama gerçek şu ki, kendi kendine yeten hücrelerin gerçekten çok iyi çalışmadığıdır, bu yüzden kendi kendine boyutlandırma ek görünümleri de işe yaramazsa şaşırmayabilir. – matt

+0

Çok iyi çalışmıyorlar ama bu yöntemin çağrılmaması gerektiği anlamına gelmiyor;) – Warpling

İlgili konular