0

Ich erstellte eine benutzerdefinierte Unterklasse von UICollectionViewCell zusammen mit einem Xib, die eine Größe für die Zelle (60 Punkte von 60 Punkten) definiert.Wie UICollectionViewCell Größe programmgesteuert ändern (mit Xib)

I implementiert auch die folgenden:

- (CGSize)collectionView:(UICollectionView *)collectionView 
        layout:(UICollectionViewLayout *)collectionViewLayout 
    sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 
    CGSize size = [MainScreen screen]; 
    CGFloat width = size.width; 
    CGFloat item = (width*60)/320; 
    return CGSizeMake(item, item); 
} 

Das Problem, das ich in laufende bin ist, dass jedes Mal, wenn ich mein Programm laufen, immer die Zellen in meinem UICollectionView Controller als 60x60 Zellen erscheinen. Außerdem habe ich auf einem iPhone 6s getestet, was 375x667 Punkte (also, die Mathematik sollte die Zellen ~ 70x70 nicht 60x60 sein).

Wie programmiere ich programmgesteuert die Größe der Zelle (oder überschreibe die vordefinierte Xib-Größe)?

+1

Haben Sie sichergestellt, dass Ihr View-Controller als UICollectionViewDelegateFlowLayout-Delegat festgelegt ist? – JiuJitsuCoder

+0

Ja, und damit nehme ich an, du meinst Folgendes: '[self.collectionView setCollectionViewLayout: flowLayout];', '[self.collectionView setDelegate: self];' –

+0

Eigentlich nehme ich das zurück ... die Ansicht Der Controller wird in der Header-Datei auf "UICollectionViewDelegateFlowLayout" gesetzt. –

Antwort

0

Das war nur Unerfahrenheit auf meinem Ende. sizeForItemAtIndexPath: funktionierte ordnungsgemäß, jedoch musste der tatsächliche Rahmen des Zellbildes basierend auf den Parametern neu definiert werden. Also, wenn ich fest CGSizeMake(100,100) für die Größe meiner Sammlung Ansicht Zelle codiert, musste ich auch die Größe des Bildrahmens, der die Zelle zu 100x100 besetzen würde.

+0

froh, dass du es herausgefunden hast! – JiuJitsuCoder

Verwandte Themen