IGListAdapterUpdater


@interface IGListAdapterUpdater : NSObject <IGListUpdatingDelegate>

An IGListAdapterUpdater is a concrete type that conforms to IGListUpdatingDelegate. It is an out-of-box updater for IGListAdapter objects to use.

Note

This updater performs re-entrant, coalesced updating for a list. It also uses a least-minimal diff for calculating UI updates when IGListAdapter calls -performUpdateWithCollectionView:fromObjects:toObjects:completion:.
  • The delegate that receives events with data on the performance of a transition.

    Declaration

    Objective-C

    @property (readwrite, nonatomic)
        id<IGListAdapterUpdaterDelegate> _Nullable delegate;

    Swift

    weak var delegate: ListAdapterUpdaterDelegate? { get set }
  • A flag indicating if a move should be treated as a delete, then insert operation.

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic) BOOL movesAsDeletesInserts;

    Swift

    var movesAsDeletesInserts: Bool { get set }
  • A flag indicating that section reloads should be treated as item reloads, instead of converting them to delete, then insert operations. This only applies if the number of items for the section is unchanged.

    Note

    If the number of items for the section is changed, we would fallback to the default behavior and convert it to delete + insert, because the collectionView can crash otherwise.

    Default is NO.

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic) BOOL preferItemReloadsForSectionReloads;

    Swift

    var preferItemReloadsForSectionReloads: Bool { get set }
  • A flag indicating whether this updater should skip diffing and simply call reloadData for updates when the collection view is not in a window. The default value is YES.

    Note

    This will result in better performance, but will not generate the same delegate callbacks. If using a custom layout, it will not receive prepareForCollectionViewUpdates:.

    Warning

    On iOS < 8.3, this behavior is unsupported and will always be treated as NO.

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic) BOOL allowsBackgroundReloading;

    Swift

    var allowsBackgroundReloading: Bool { get set }
  • A bitmask of experiments to conduct on the updater.

    Declaration

    Objective-C

    @property (assign, readwrite, nonatomic) IGListExperiment experiments;

    Swift

    var experiments: IGListExperiment { get set }