IGListKit/Source/IGListCollectionScrollingTraits.h
Adam Stern b4c8ea180f give section controllers access to collection view scrolling traits
Summary:
I'd like to be able to access the current collection view scrolling traits inside section controllers. These are expressed as three properties from `UIScrollView`:

`isTracking`, `isDragging`, and `isDecelerating`.

My approach is to add a new struct `IGListCollectionScrollingTraits` with these three values, and expose this to section controllers through `IGListCollectionContext`.

Reviewed By: rnystrom

Differential Revision: D7986814

fbshipit-source-id: 19e9bd3b89545b10238dd060a5af8c5a0f39eb82
2018-05-14 14:56:54 -07:00

22 lines
876 B
Objective-C

/**
* Copyright (c) 2016-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import <Foundation/Foundation.h>
/**
The current scrolling traits of the underlying collection view.
The attributes are always equal to their corresponding properties on the underlying collection view.
*/
NS_SWIFT_NAME(ListCollectionScrollingTraits)
typedef struct IGListCollectionScrollingTraits {
/// returns YES if user has touched. may not yet have started dragging.
bool isTracking;
/// returns YES if user has started scrolling. this may require some time and or distance to move to initiate dragging
bool isDragging;
/// returns YES if user isn't dragging (touch up) but scroll view is still moving.
bool isDecelerating;
} IGListCollectionScrollingTraits;