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?
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
Stellen Sie außerdem sicher, dass Sie die gewünschte Delegates & DataSources
an die UICollectionView angehängt haben
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:
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:
Tags und Links objective-c ios