AutoLayout
etkinleştirilmiş storyboard altında UICollectionView
kullanıyorum. Hücre boyutunu collectionView
'a göre ayarlamaya çalışıyorum ve [collectionView: layout: sizeForItemAtIndexPath:]
yöntemini temel alıyor. collectionView
ayrıca otomatik yerleşime bağlıdır ve ilk kez yanlış boyut verir (bunun, görünümün düzeni oluşturulmadan önce olduğunu varsayalım). viewDidLayoutSubviews
yöntemi çağrıldıktan sonra doğru boyuta sahip olduklarını biliyorum ancak UI hatalarını çalışma zamanında yapan collectionView
öğesinin çift kez yeniden yüklenmesine neden oluyor. Uygulamanızın [collectionView: layout: sizeForItemAtIndexPath:]
yöntemini burada bulabilirsiniz.AutoLayout'ta UICollectionView hücre boyutu
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
CGSize innerSize = CGSizeMake(galleryView.frame.size.width - 80, galleryView.frame.size.height - 40);
GLPhotoAsset *photo = [(PCOpticsPhotoPoint *)_cluster.points[indexPath.row] photo];
CGFloat ratio = MIN(innerSize.width/photo.size.width, innerSize.height/photo.size.height);
return CGSizeMake(photo.size.width * ratio, photo.size.height * ratio);
}
"Burada, koleksiyon görünümüne göre hücre boyutunu ayarlamaya çalışıyorum" Burada kalmıyor musunuz? –
@KyleTruscott [collectionView: layout: sizeForItemAtIndexPath:] yöntemindeki koleksiyonView'e göre hücre boyutunu hesaplayıp döndürüyorum. Sorun, otomatik düzenleme yapılmadan önce bu yöntemin çağrılmasıdır. – Pei
Hücrelerinizin büyüklüğünün, toplama görünümünün geneline ilişkin "ilişkili" olduğunu mu söylüyorsunuz? Belki de uygulamanızı yüklemelisiniz: [collectionView: layout: sizeForItemAtIndexPath:] ' –