Files
IGListKit/Source/IGListCollectionView.m
Sven Bacia fb9d8cea8e disables prefetchEnabled by default
Summary:
Disables `prefetchEnabled` by default on `IGListCollectionView` (#318).

- [x] All tests pass. Demo project builds and runs.
- [x] I added tests, an experiment, or detailed why my change isn't tested.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/323

Differential Revision: D4319761

Pulled By: rnystrom

fbshipit-source-id: a3ea4c3d1d1f3123a60c8168fb333e73ab93cb1e
2016-12-13 07:13:58 -08:00

52 lines
1.6 KiB
Objective-C

/**
* Copyright (c) 2016-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
#import "IGListCollectionView.h"
@implementation IGListCollectionView
- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout {
if (self = [super initWithFrame:frame collectionViewLayout:layout]) {
UIColor *backgroundAppearanceColor = (UIColor *) [[[self class] appearance] backgroundColor];
if (!backgroundAppearanceColor) {
self.backgroundColor = [UIColor whiteColor];
}
if ([self respondsToSelector:@selector(setPrefetchingEnabled:)]) {
self.prefetchingEnabled = NO;
}
self.alwaysBounceVertical = YES;
}
return self;
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
if (self = [super initWithCoder:aDecoder]) {
if ([self respondsToSelector:@selector(setPrefetchingEnabled:)]) {
self.prefetchingEnabled = NO;
}
}
return self;
}
- (void)layoutSubviews {
/**
UICollectionView will sometimes lay its cells out with an animation. This is especially noticeable on older devices
while scrolling quickly. The simplest fix is to just disable animations for -layoutSubviews, which is where cells
and other views inside the UICollectionView are laid out.
*/
[UIView performWithoutAnimation:^{
[super layoutSubviews];
}];
}
@end