Das habe ich gemacht. Zuerst stelle ich die Größe der Zelle basierend auf der Größe des Bildschirms ein (so dass wir die beste Anzahl von Bildern in jeder Zeile erhalten). Vielleicht möchten Sie die Zahlen ändern, um Ihrer Ursache gerecht zu werden.
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
CGFloat widthOfCell =(self.view.frame.size.width-30)/2;
CGFloat heightOfCell =widthOfCell * 1.33;
CGSize returnValue = CGSizeMake(widthOfCell, heightOfCell);
returnValue.height += 5;
returnValue.width += 5;
return returnValue;
}
habe ich dann ein Bildbearbeitungsverfahren, die Landschaft oder Portrait-Zustand und (für meine app), um zu bestimmen ich jedes Bild ein Porträt zu machen beschlossen:
if (sourceImage.size.width>sourceImage.size.height) {
sourceImage = [[UIImage alloc] initWithCGImage: sourceImage.CGImage
scale: 1.0
orientation: UIImageOrientationRight];
}
Wenn Sie es haben wollen umgekehrt, tauschen Sie die >
mit <
CAVEAT: meine rotierende Methode berücksichtigt nicht, wenn das Bild nach links oder rechts zeigt. Mit anderen Worten, wenn ein Bild auf dem Kopf steht, kann mein Code das nicht erkennen. Ich hoffe, dass jemand anderes Ihnen helfen kann, und ich hoffe, ich bin nicht vom Weg abgekommen! :)
Sie https://github.com/bryceredd/RFQuiltLayout. Sieht aus wie etwas, das Sie für dieses – Rajneesh071