Farklı özel hücreler içeren bir koleksiyon görünümüm var.UICollectionView: UICollectionViewCell nesnesi her zaman null boyutundadırForItemAtIndexPath
Bu hücreler, boyut olarak değişen farklı içerikler içerir.
Hücreler, Storyboard'da tanımlanmıştır, bu nedenle kodda kayıt gerekmez.
ben şimdi tek yapmak istediğim
içeriğine bağlı olarak temsilci yönteminde boyutunu değiştirmek: Her hücre için beklendiği gibi denir- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
id cellAtIndexPath = [collectionView cellForItemAtIndexPath:indexPath];
NSLog(@"The cell: %@", cellAtIndexPath);
...
e.g. calling sizeToFit methods and cumulating the sizes of the cells' subviews
...
}
Yöntemi, ancak cellAtIndexPath olursa olsun her zaman, NULL döndürür ne ben denenmiş. Dolayısıyla, indexPath veya içerik görünümündeki hücre nesnesine erişemiyorum.
Hücre nesnesine neden erişemediğime dair herhangi bir öneriniz var mı?
Teşekkürler! Bu nedenle, bu bakış açısından, alt görüntülemelere bağlı olarak farklı hücre yükseklikleri ayarlamak mümkün değildir (genellikle hesaplamak için sizeToFit'i çağırınız)? Hücrelere, içeriğine bağlı olarak "yeniden boyutlandırma" imkanı yok mu? Örneğin. UILabels için, yüksekliği çizgi ve textlength ile hesaplamanız gerekir. Ve bu çok yanlış olur. – crud21
Sağ. İçeriğine bağlıysa hücre boyutunu hesaplamanın yollarını bulabilir, ancak hücre görünümlerine bağlı olamazsınız. (Örn. 'NSString', metin boyutlarını elde etmek için yöntemler sağlar.) – chris
Bu aptalca ve talihsiz ... UITableView' veri kaynağına gitmiyor ve henüz var olmayan bir hücreye soruyorsanız hücreyi almıyor ? – jtbandes