UIScrollView(InfiniteScroll)

@interface UIScrollView (InfiniteScroll)

UIScrollView infinite scroll category

  • The direction that the infinite scroll should work in (default: InfiniteScrollDirectionVertical).

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic)
        InfiniteScrollDirection infiniteScrollDirection;

    Swift

    var infiniteScrollDirection: InfiniteScrollDirection { get set }
  • Flag that indicates whether infinite scroll is animating

    Declaration

    Objective-C

    @property (readonly, getter=isAnimatingInfiniteScroll, nonatomic)
        BOOL animatingInfiniteScroll;

    Swift

    var isAnimatingInfiniteScroll: Bool { get }
  • Infinite scroll activity indicator style (default: UIActivityIndicatorViewStyleGray on iOS, UIActivityIndicatorViewStyleWhite on tvOS)

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic)
        UIActivityIndicatorViewStyle infiniteScrollIndicatorStyle;

    Swift

    var infiniteScrollIndicatorStyle: UIActivityIndicatorViewStyle { get set }
  • Infinite indicator view

    You can set your own custom view instead of default activity indicator, make sure it implements methods below:

    • - (void)startAnimating
    • - (void)stopAnimating

    Infinite scroll will call implemented methods during user interaction.

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic, nullable)
        UIView *infiniteScrollIndicatorView;

    Swift

    var infiniteScrollIndicatorView: UIView? { get set }
  • The margin from the scroll view content to the indicator view (Default: 11)

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic) CGFloat infiniteScrollIndicatorMargin;

    Swift

    var infiniteScrollIndicatorMargin: CGFloat { get set }
  • Set adjustment for scroll coordinate used to determine when to call handler block. Non-zero value advances the point when handler block is being called making it fire by N points earlier before scroll view reaches the bottom or right edge. This value is measured in points and must be positive number. Default: 0.0

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic) CGFloat infiniteScrollTriggerOffset;

    Swift

    var infiniteScrollTriggerOffset: CGFloat { get set }
  • Setup infinite scroll handler

    Declaration

    Objective-C

    - (void)addInfiniteScrollWithHandler:
        (nonnull void (^)(UIScrollView *_Nonnull))handler;

    Swift

    func addInfiniteScroll(handler: @escaping (UIScrollView) -> Void)

    Parameters

    handler

    a handler block

  • Set a handler to be called to check if the infinite scroll should be shown

    Declaration

    Objective-C

    - (void)setShouldShowInfiniteScrollHandler:
        (nullable BOOL (^)(UIScrollView *_Nonnull))handler;

    Swift

    func setShouldShowInfiniteScrollHandler(_ handler: ((UIScrollView) -> Bool)?)

    Parameters

    handler

    a handler block

  • Unregister infinite scroll

    Declaration

    Objective-C

    - (void)removeInfiniteScroll;

    Swift

    func removeInfiniteScroll()
  • Manually begin infinite scroll animations

    This method provides identical behavior to user initiated scrolling.

    Declaration

    Objective-C

    - (void)beginInfiniteScroll:(BOOL)forceScroll;

    Swift

    func beginInfiniteScroll(_ forceScroll: Bool)

    Parameters

    forceScroll

    pass YES to scroll to indicator view

  • Finish infinite scroll animations

    You must call this method from your infinite scroll handler to finish all animations properly and reset infinite scroll state

    Declaration

    Objective-C

    - (void)finishInfiniteScrollWithCompletion:
        (nullable void (^)(UIScrollView *_Nonnull))handler;

    Swift

    func finishInfiniteScroll(completion handler: ((UIScrollView) -> Void)? = nil)

    Parameters

    handler

    a completion block handler called when animation finished

  • Finish infinite scroll animations

    You must call this method from your infinite scroll handler to finish all animations properly and reset infinite scroll state

    Declaration

    Objective-C

    - (void)finishInfiniteScroll;

    Swift

    func finishInfiniteScroll()