Così sto usando UICollectionView
sotto AutoLayout
storyboard -enabled. Sto provando a impostare la dimensione della cella in base allo collectionView
e si basa sul metodo [collectionView: layout: sizeForItemAtIndexPath:]
. collectionView
dipende anche dal layout automatico e fornisce dimensioni errate al primo tentativo (presumo che questo accada prima che la vista sia strutturata). So che avranno le dimensioni corrette dopo che il metodo viewDidLayoutSubviews
è stato chiamato, ma causa il doppio ricaricamento degli elementi collectionView
che rende i glitch dell'interfaccia utente in fase di esecuzione.dimensione della cella UICollectionView nel layout automatico
Ecco [collectionView: layout: sizeForItemAtIndexPath:]
metodo della mia esecuzione.
- (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);
}
"Sto cercando di impostare la dimensione della cella in base a collectionView" Non ti segue qui? –
@KyleTruscott Sto calcolando e restituendo la dimensione della cella in base a collectionView nel metodo [collectionView: layout: sizeForItemAtIndexPath:]. Il problema è che questo metodo viene chiamato prima che venga eseguito il layout automatico. – Pei
Stai dicendo che la dimensione delle tue celle è "correlata" al retto della vista di raccolta complessiva? Forse dovresti pubblicare la tua implementazione di '[collectionView: layout: sizeForItemAtIndexPath:]' –