Ich möchte ein UICollectionView-Steuerelement einfügen, das Daumen horizontal anzeigt (nur eine einzige Daumenzeile). Aus irgendeinem Grund drückt die UICollectionView die Daumen 44 Pixel nach unten, sodass die Höhe "0" tatsächlich "44" beträgt. Ich gehe davon aus, dass dieser Bereich hinzugefügt werden könnte, um die Höhe der Navigationsleiste zu berücksichtigen (ich nehme nur an). Da sich meine UICollectionView nur auf einem Teil des Bildschirms befindet, möchte ich diesen Rand nicht. Gibt es eine Möglichkeit, es zu entfernen?
ios7
uicollectionview
Bashan
quelle
quelle
Antworten:
Das Problem liegt möglicherweise in den Inhaltseinfügungen der Sammlungsansicht. Versuchen Sie,
self.automaticallyAdjustsScrollViewInsets = NO;
dieviewDidLoad
Methode des View Controllers hinzuzufügen .quelle
Sie können dies auch im Storyboard festlegen.
Stellen Sie sicher, dass Sie den ViewController ausgewählt haben, und deaktivieren Sie dann "Bildlaufansichten anpassen".
Ich habe jedoch nicht getestet, was diese IB / Storyboard-Methode unter iOS6 bewirkt. Mit der Codemethode müssen Sie überprüfen, ob der VC auf die Methode reagiert:
quelle
Ich fand das Hinzufügen:
Im View Controller habe ich die UICollectionView geladen, um das Problem zu lösen, da ich die akzeptierte Antwort nicht zum Laufen bringen konnte.
Die Frage, auf die ich diese Antwort gefunden habe, ist hier zu finden und bietet eine äußerst ausführliche und interessante Erklärung für den Unterschied zwischen automatisch angepassten Bildlaufansichten, erweiterten Layouts und Kanten für erweiterte Layouts.
Eine Lektüre wert
quelle
Möglicherweise können Sie versuchen, diesen Wert mit 0 zu erzwingen, indem Sie das Ablauflayout "Delegieren" der Sammlungsansicht verwenden:
Ändern Sie den Wert Ihrer Polsterung.
quelle
Swift 3:
Zuerst möchten Sie die viewController
automaticallyAdjustsScrollViewInsets
auf false setzen:Dann sollten Sie in der Lage sein, die Kanteneinsätze entsprechend anzupassen:
quelle
Wie einige andere erwähnt haben,
viewController.automaticallyAdjustsScrollViewInsets
ist seit iOS 11 veraltet . Meine Lösung...Swift 4.2, Xcode 10.1, iOS 12.1:
Aus irgendeinem Grund
collectionView.contentSize.height
erschien es kleiner als die aufgelöste Höhe meiner Sammlungsansicht. Zuerst habe ich eine automatische Layoutbeschränkung in Bezug auf die Hälfte der Höhe der Übersicht verwendet. Um dies zu beheben, habe ich die Einschränkung so geändert, dass sie relativ zum "sicheren Bereich" der Ansicht ist.Die erlaubte mir , die Zellenhöhe zu setzen , um vertikal meine Sammlung Ansicht zu füllen mit
collectionView.contentSize.height
:Vor
Nach
quelle
Versuchen Sie es
self.feedCollectionView.contentInsetAdjustmentBehavior = .never
in der Sammlungsansicht. Das hat bei mir tatsächlich funktioniert.quelle
Swift 5.2 / Xcode 11.3
ist seit iOS 11 veraltet.
Meine Lösung:
quelle
Ähnlich wie bei der Antwort von @Sviatoslav können Sie Folgendes versuchen:
quelle