QMUICollectionViewPagingLayout

@interface QMUICollectionViewPagingLayout : UICollectionViewFlowLayout

支持按页横向滚动的 UICollectionViewLayout,可切换不同类型的滚动动画。

Warning

item 的大小和布局仅支持通过 UICollectionViewFlowLayout 的 property 系列属性修改,也即每个 item 都应相等。对于通过 delegate 方式返回各不相同的 itemSize、sectionInset 的场景是不支持的。
  • Undocumented

    Declaration

    Objective-C

    - (instancetype)initWithStyle:(QMUICollectionViewPagingLayoutStyle)style NS_DESIGNATED_INITIALIZER;
  • Undocumented

    Declaration

    Objective-C

    @property(nonatomic, assign, readonly) QMUICollectionViewPagingLayoutStyle style

    Swift

    var style: QMUICollectionViewPagingLayoutStyle { get }
  • 规定超过这个滚动速度就强制翻页,从而使翻页更容易触发。默认为 0.4

    Declaration

    Objective-C

    @property (nonatomic) CGFloat velocityForEnsurePageDown;

    Swift

    var velocityForEnsurePageDown: CGFloat { get set }
  • 是否支持一次滑动可以滚动多个 item,默认为 YES

    Declaration

    Objective-C

    @property (nonatomic) BOOL allowsMultipleItemScroll;

    Swift

    var allowsMultipleItemScroll: Bool { get set }
  • 规定了当支持一次滑动允许滚动多个 item 的时候,滑动速度要达到多少才会滚动多个 item,默认为 2.5

    仅当 allowsMultipleItemScroll 为 YES 时生效

    Declaration

    Objective-C

    @property (nonatomic) CGFloat multipleItemScrollVelocityLimit;

    Swift

    var multipleItemScrollVelocityLimit: CGFloat { get set }

DefaultStyle

  • 当前 cell 的百分之多少滚过临界点时就会触发滚到下一张的动作,默认为 .666,也即超过 2/3 即会滚到下一张。 对应地,触发滚到上一张的临界点将会被设置为 (1 - pagingThreshold)

    Declaration

    Objective-C

    @property (nonatomic) CGFloat pagingThreshold;

    Swift

    var pagingThreshold: CGFloat { get set }
  • 打开时,会在 collectionView.backgroundView 上添加一条红线,用来标志分页的参考点位置。仅对 Default style 有效。

    Declaration

    Objective-C

    @property (nonatomic) BOOL debug;

    Swift

    var debug: Bool { get set }

ScaleStyle

  • 中间那张卡片基于初始大小的缩放倍数,默认为 1.0

    Declaration

    Objective-C

    @property (nonatomic) CGFloat maximumScale;

    Swift

    var maximumScale: CGFloat { get set }
  • 除了中间之外的其他卡片基于初始大小的缩放倍数,默认为 0.9

    Declaration

    Objective-C

    @property (nonatomic) CGFloat minimumScale;

    Swift

    var minimumScale: CGFloat { get set }

RotationStyle

  • 旋转卡片相关 左右两个卡片最终旋转的角度有 rotationRadius * 90 计算出来 rotationRadius表示旋转的半径

    Warning

    仅当 style 为 QMUICollectionViewPagingLayoutStyleRotation 时才生效

    Declaration

    Objective-C

    @property (nonatomic) CGFloat rotationRatio;

    Swift

    var rotationRatio: CGFloat { get set }
  • Undocumented

    Declaration

    Objective-C

    @property(nonatomic, assign) CGFloat rotationRadius

    Swift

    var rotationRadius: CGFloat { get set }