FUIHorizontalScrollCollectionViewLayout

open class FUIHorizontalScrollCollectionViewLayout : UICollectionViewFlowLayout

This layout should be used when the user should pan horizontally in the collection view, to view items off-screen to the left or right. Items in a section extend in a single row to infinity, so items will not wrap to new lines.

A developer should set the itemSize property of the layout, to specify the standard dimensions of the cell items.

Code usage

  1. Assign an instance of FUIHorizontalScrollCollectionViewLayout to your collection view.

    self.collectionView.collectionViewLayout = FUICollectionViewLayout.horizontalScroll
    
  2. Implement collectionView(_:cellForItemAt:) dataSource.

    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: FUIObjectCollectionViewCell.reuseIdentifier, for: indexPath) as! FUIObjectCollectionViewCell  //You may use any type of collection view cell here.
    //configue cell here
    //...
    return cell
    }
    
  3. Implement following methods if you need section header/footer. You can also set headerReferenceHeight/footerReferenceHeight to apply same height for all headers/footers.

    func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
    let view = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "Header", for: indexPath) as! FUICollectionSectionHeaderFooterView
    //configue header/footer view here
    //...
    return view
    }
    

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize { switch section { case 0: return CGSize(width: 40, height: 40) default: return CGSize(width: 60, height: 60) }

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForFooterInSection section: Int) -> CGSize { switch section { case 0: return CGSize(width: 40, height: 40) default: return CGSize(width: 60, height: 60) }

  • The vertical alignment of cells in the collection view.

    Declaration

    Swift

    open var alignment: FUICollectionViewVerticalAlignment { get set }
  • FUIHorizontalScrollCollectionViewLayout only support horizontal scroll direction.

    Declaration

    Swift

    override open var scrollDirection: UICollectionViewScrollDirection { get set }
  • FUIHorizontalScrollCollectionViewLayout does not support estimatedItemSize, set itemSize instead.

    Declaration

    Swift

    open override var estimatedItemSize: CGSize { get set }
  • Undocumented

    Declaration

    Swift

    open override func invalidateLayout(with context: UICollectionViewLayoutInvalidationContext)
  • The width and height of the collection view’s contents.

    Declaration

    Swift

    open override var collectionViewContentSize: CGSize { get }