0

Ich erstelle eine App als Instagram. Also, ich habe eine UICollectionView, wo ich meine Bilder, Benutzerdetails und likes & Kommentare platziert.Wie ändert man UICollectionViewCell Höhe?

So ist das Problem, dass ich gesetzt Zellen Größe in

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 

und legen die Anfangsgröße als (Breite: 320, Höhe: 420 (320 - Bild 50 - Benutzerdaten auf der Oberseite der Bild und 50 - Likes & Kommentare unter einem Bild)).

Aber hängt von Likes und Kommentaren ab, kann sich meine Größe von unten ändern, zum Beispiel von 50 bis 200. Aber in diesem Fall ändert meine UICollectionViewCell seine Größe nicht.

Wie kann ich das abhängig von Kommentaren sehen Höhe meine UICollectionViewCell Höhe ändert sich auch?

Ich arbeite über eine Woche darüber und weiß nicht, wie man es implementiert. Kann mir bitte jemand helfen?

+0

Try this - https://github.com/yapstudios/UICollectionViewWaterfallLayout –

+0

Haben Sie richtig vertikale Beschränkungen festgelegt? – zcui93

+0

Sie müssen eine Methode implementieren, um die Größe der Zelle basierend auf dem Inhalt zu berechnen, und verwenden Sie diese Methode in der sizeForItemAtIndexPath-Methode – MudOnTire

Antwort

0
you need to get the height of string and then set cell size aacording to that string!!! 
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
height=_collectionView.contentSize.height; 
    width = _collectionView.frame.size.width; 
    _collectionView.frame = CGRectMake(0,20,width, height); 
} 

#pragma MARK COLECTIONVIEW DELEGATE FLOW LAYOUT 
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    CGSize Size =[[self.Array_LIKEs objectAtIndex:indexPath.row] sizeWithAttributes:NULL]; 
    CGFloat calculate_width =Size.width+Size.width/2+20; 
    CGFloat calculate_height=Size.height+10; 
    return CGSizeMake(calculate_width, calculate_height); 

}