2017-11-10 1 views
0

Ich möchte benutzerdefinierte horizontale Bildlauf für meine CollectionView festlegen, dass es um 1 Zelle scrollen wird (nicht durch die gesamte Breite meines Bildschirms).Wie kann ich einen benutzerdefinierten horizontalen Bildlauf für die Sammlungsansicht in Swift, XCode festlegen?

Ich könnte HORIZONTAL blättern, aber nicht benutzerdefinierte. (Siehe Bildschirme). 1 Bildschirm: meine Erweiterung meiner SammlungView für UIScrollViewDelegate. * Ich sah, dass in der Konsole (siehe auch) "x" - mein Offset = 290 - es ist wahr! Aber in der Tat ist es nicht 290. Paging wurde in "wahr" 2 Bildschirm markiert: Delegate und dataSource.

enter image description here

Hilfe, bitte!

+0

Mögliche Duplikat aktiviert [Wie kann ich die Scroll-Richtung in UICollectionView ändern?] (Https: // stackoverflow.com/questions/18464153/how-can-i-change-the-scroll-direction-in-uicollectionview) –

Antwort

0

Zuerst müssen Sie Ihre Kollektionscrollrichtung horizontal (UICollectionViewScrollDirectionHorizontal) und pagingEnabled auf gesetzt setzen JA

Es bedeutet, dass Ihre Sammlung Ansicht horizontal mit einer nach dem anderen Zelle bewegen wird.

Set horizontaler Richtung (Select Sammlung Ansicht von XIB oder Storyboard)

enter image description here

Und für Satz Paginierung ermöglichen

myCollectionView.pagingEnabled = true 

Aktualisiert:

Sie verwenden sollten, von UICollectionViewDelegateFlowLayout Delegierter

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize 
    { 
     let width = UIScreen.main.bounds.size.width 
     var height = 101.7 // set height as you want 
     return CGSize(width: width, height: height) 
    } 
+0

pagingEnabled zu ja - es war in meinem Projekt Aber ich verstehe nicht über UICollectionViewScrollDirectionHorizontal. Könnten Sie bitte erklären? –

+0

Überprüfen Sie die bearbeitete Antwort. – iPatel

+0

Es war in meinem Projekt.Das Problem ist, dass ich horizontale Scroll habe, aber meine Scroll ist nicht um eine Zelle (ich habe nicht Standart Breite der Zelle) –

0

Wenn Storyboard mit der der Sammlung Ansicht gehen und die rechtshändigen Registerkarte „zeigen die Größe Inspektoren“ und ändern

minimum spacing for cells = 0 
minimum spacing for lines = 0 

, wenn Sie direkt von Code geändert werden soll, dann implementieren diese UICollectionViewDelegateFlowLayout Methoden

func collectionView(_ collectionView: UICollectionView, layout 
     collectionViewLayout: UICollectionViewLayout, 
    minimumLineSpacingForSectionAt section: Int) -> CGFloat { 
    return 0 
} 

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { 
    return 0 
} 

müssen Richtung gesetzt horizontal erinnern Scrollen und Paginierung

und implementieren diese Delegatmethoden in Code

extension ViewController: UICollectionViewDelegateFlowLayout { 
func collectionView(_ collectionView: UICollectionView, layout 
collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: 
IndexPath) -> CGSize { 
     return CGSize(width: collectionView.frame.size.width, height: 
collectionView.frame.size.height) 
    } 
} 
Verwandte Themen