Wie kann ich die Breite der Erfassungszelle auf eine dynamische Ausdehnung der Telefonbreite einstellen?

8

Wie kann ich festlegen, dass sich die Zellansicht der Sammlung dynamisch auf die Bildschirmbreite des iPhone ausdehnt (z. B. iphone 5s, iphone 6 plus)?

Ich habe es versucht:

%Vor%

Das geht nicht. Ich sehe nicht, dass der Inhalt auf die rechte Seite des Bildschirms ausgedehnt wird.

Ich habe versucht, diese Delegate-Methode hinzuzufügen:

%Vor%

Ich habe Haltepunkte in der Methode gesetzt, aber diese Methode wird nie aufgerufen?

    
michael 25.11.2014, 01:46
quelle

2 Antworten

13

Ich hatte das gleiche Problem mit dem gleichen Anwendungsfall. Ich habe schließlich getan

%Vor%

Dies ändert die Größe jedes Elements (Zelle) der Sammlungsansicht. Daher können Sie die Größe jeder Zelle ändern. Hier brauche ich die Zellenbreite, die der meiner UICollectionView entspricht, also habe ich die Breite und die spezifische Höhe der UICollectionview, die ich wünschte, bestanden. Hoffe, das würde helfen.

Außerdem müssen die Zellgrenzen nicht in - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath festgelegt werden, da die Größe über - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath

festgelegt wird

Stellen Sie außerdem sicher, dass Sie die gewünschte Delegates & DataSources an die UICollectionView angehängt haben

    
Nikhil Lihla 25.11.2014, 13:25
quelle
1

Die Größe der Zellen wird vom Layoutobjekt der Sammlungsansicht angegeben. Verwenden Sie UICollectionViewFlowLayout ? Versuchen Sie entweder, die Eigenschaft itemSize des Layoutobjekts festzulegen oder die Delegate-Methode zu implementieren: collectionView:layout:sizeForItemAtIndexPath:

Sie können dort die Größe des Elements (Zelle) relativ zu den Grenzen der Sammlungsansicht angeben.

Denken Sie daran, dass Ihre Sammlungsansicht ebenfalls so eingerichtet werden muss, dass sie die Größe Ihres View-Controllers ändert. Wenn Sie einen UICollectionViewController verwenden, der automatisch eingerichtet werden soll. Andernfalls müssen Sie Ihre Sammlungsansicht auf die Grenzen ihrer Superview einschränken.

Aktualisierung:

Sie können die Eigenschaft itemSize des Layouts direkt im Layout festlegen:

%Vor%

oder, (besser, wenn Sie mit Rotation oder Größenänderung umgehen), implementieren Sie den entsprechenden Delegaten zurückrufen:

%Vor%

Ich würde empfehlen, die entsprechenden UICollectionView -Docs zu lesen, um mehr darüber zu erfahren, wie Sammlungsansichten und deren Layout funktionieren:

John Grant 25.11.2014 03:26
quelle

Tags und Links