Skip to content
This repository was archived by the owner on Feb 2, 2023. It is now read-only.

Commit 95bd2c2

Browse files
committed
Merge pull request #1027 from facebook/ASCollectionInternal
Introduce ASCollectionInternal file and create always-available ASCView -> ASCNode backpointer.
2 parents 1d1a248 + 25b6f29 commit 95bd2c2

12 files changed

Lines changed: 105 additions & 86 deletions

File tree

AsyncDisplayKit.xcodeproj/project.pbxproj

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@
112112
05F20AA41A15733C00DCA68A /* ASImageProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = 05F20AA31A15733C00DCA68A /* ASImageProtocols.h */; settings = {ATTRIBUTES = (Public, ); }; };
113113
18C2ED7E1B9B7DE800F627B3 /* ASCollectionNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C2ED7C1B9B7DE800F627B3 /* ASCollectionNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
114114
18C2ED7F1B9B7DE800F627B3 /* ASCollectionNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C2ED7C1B9B7DE800F627B3 /* ASCollectionNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
115-
18C2ED801B9B7DE800F627B3 /* ASCollectionNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.m */; };
116-
18C2ED831B9B7DE800F627B3 /* ASCollectionNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.m */; };
115+
18C2ED801B9B7DE800F627B3 /* ASCollectionNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = 18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.mm */; };
116+
18C2ED831B9B7DE800F627B3 /* ASCollectionNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = 18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.mm */; };
117117
1950C4491A3BB5C1005C8279 /* ASEqualityHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 1950C4481A3BB5C1005C8279 /* ASEqualityHelpers.h */; settings = {ATTRIBUTES = (Public, ); }; };
118118
204C979E1B362CB3002B1083 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 204C979D1B362CB3002B1083 /* Default-568h@2x.png */; };
119119
205F0E0F1B371875007741D0 /* UICollectionViewLayout+ASConvenience.h in Headers */ = {isa = PBXBuildFile; fileRef = 205F0E0D1B371875007741D0 /* UICollectionViewLayout+ASConvenience.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -466,6 +466,10 @@
466466
DE8BEAC21C2DF3FC00D57C12 /* ASDelegateProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = DE8BEABF1C2DF3FC00D57C12 /* ASDelegateProxy.h */; };
467467
DE8BEAC31C2DF3FC00D57C12 /* ASDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = DE8BEAC01C2DF3FC00D57C12 /* ASDelegateProxy.m */; };
468468
DE8BEAC41C2DF3FC00D57C12 /* ASDelegateProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = DE8BEAC01C2DF3FC00D57C12 /* ASDelegateProxy.m */; };
469+
DEC146B61C37A16A004A0EE7 /* ASCollectionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = DEC146B41C37A16A004A0EE7 /* ASCollectionInternal.h */; };
470+
DEC146B71C37A16A004A0EE7 /* ASCollectionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = DEC146B41C37A16A004A0EE7 /* ASCollectionInternal.h */; };
471+
DEC146B81C37A16A004A0EE7 /* ASCollectionInternal.m in Sources */ = {isa = PBXBuildFile; fileRef = DEC146B51C37A16A004A0EE7 /* ASCollectionInternal.m */; };
472+
DEC146B91C37A16A004A0EE7 /* ASCollectionInternal.m in Sources */ = {isa = PBXBuildFile; fileRef = DEC146B51C37A16A004A0EE7 /* ASCollectionInternal.m */; };
469473
DECBD6E71BE56E1900CF4905 /* ASButtonNode.h in Headers */ = {isa = PBXBuildFile; fileRef = DECBD6E51BE56E1900CF4905 /* ASButtonNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
470474
DECBD6E81BE56E1900CF4905 /* ASButtonNode.h in Headers */ = {isa = PBXBuildFile; fileRef = DECBD6E51BE56E1900CF4905 /* ASButtonNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
471475
DECBD6E91BE56E1900CF4905 /* ASButtonNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = DECBD6E61BE56E1900CF4905 /* ASButtonNode.mm */; };
@@ -609,7 +613,7 @@
609613
05EA6FE61AC0966E00E35788 /* ASSnapshotTestCase.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASSnapshotTestCase.mm; sourceTree = "<group>"; };
610614
05F20AA31A15733C00DCA68A /* ASImageProtocols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASImageProtocols.h; sourceTree = "<group>"; };
611615
18C2ED7C1B9B7DE800F627B3 /* ASCollectionNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASCollectionNode.h; sourceTree = "<group>"; };
612-
18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASCollectionNode.m; sourceTree = "<group>"; };
616+
18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASCollectionNode.mm; sourceTree = "<group>"; };
613617
1950C4481A3BB5C1005C8279 /* ASEqualityHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASEqualityHelpers.h; sourceTree = "<group>"; };
614618
204C979D1B362CB3002B1083 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "../Default-568h@2x.png"; sourceTree = "<group>"; };
615619
205F0E0D1B371875007741D0 /* UICollectionViewLayout+ASConvenience.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UICollectionViewLayout+ASConvenience.h"; sourceTree = "<group>"; };
@@ -765,6 +769,8 @@
765769
DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ASDisplayNode+FrameworkPrivate.h"; sourceTree = "<group>"; };
766770
DE8BEABF1C2DF3FC00D57C12 /* ASDelegateProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASDelegateProxy.h; sourceTree = "<group>"; };
767771
DE8BEAC01C2DF3FC00D57C12 /* ASDelegateProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASDelegateProxy.m; sourceTree = "<group>"; };
772+
DEC146B41C37A16A004A0EE7 /* ASCollectionInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASCollectionInternal.h; path = Details/ASCollectionInternal.h; sourceTree = "<group>"; };
773+
DEC146B51C37A16A004A0EE7 /* ASCollectionInternal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ASCollectionInternal.m; path = Details/ASCollectionInternal.m; sourceTree = "<group>"; };
768774
DECBD6E51BE56E1900CF4905 /* ASButtonNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASButtonNode.h; sourceTree = "<group>"; };
769775
DECBD6E61BE56E1900CF4905 /* ASButtonNode.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASButtonNode.mm; sourceTree = "<group>"; };
770776
DECC2ECB1C35C1C600388446 /* ASRangeControllerBeta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASRangeControllerBeta.h; sourceTree = "<group>"; };
@@ -891,10 +897,12 @@
891897
055F1A3A19ABD43F004DAFF1 /* ASCellNode.h */,
892898
AC6456071B0A335000CF11B8 /* ASCellNode.m */,
893899
18C2ED7C1B9B7DE800F627B3 /* ASCollectionNode.h */,
894-
18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.m */,
900+
18C2ED7D1B9B7DE800F627B3 /* ASCollectionNode.mm */,
895901
AC3C4A4F1A1139C100143C57 /* ASCollectionView.h */,
896902
AC3C4A501A1139C100143C57 /* ASCollectionView.mm */,
897903
AC3C4A531A113EEC00143C57 /* ASCollectionViewProtocols.h */,
904+
DEC146B41C37A16A004A0EE7 /* ASCollectionInternal.h */,
905+
DEC146B51C37A16A004A0EE7 /* ASCollectionInternal.m */,
898906
058D09D5195D050800B7D73C /* ASControlNode.h */,
899907
058D09D6195D050800B7D73C /* ASControlNode.m */,
900908
DECBD6E51BE56E1900CF4905 /* ASButtonNode.h */,
@@ -1367,6 +1375,7 @@
13671375
ACC945A91BA9E7A0005E1FB8 /* ASViewController.h in Headers */,
13681376
6BDC61F61979037800E50D21 /* AsyncDisplayKit.h in Headers */,
13691377
257754AD1BEE44CD00737CA5 /* ASTextKitRenderer+Positioning.h in Headers */,
1378+
DEC146B61C37A16A004A0EE7 /* ASCollectionInternal.h in Headers */,
13701379
205F0E211B376416007741D0 /* CGRect+ASConvenience.h in Headers */,
13711380
058D0A66195D05DC00B7D73C /* NSMutableAttributedString+TextKitAdditions.h in Headers */,
13721381
205F0E0F1B371875007741D0 /* UICollectionViewLayout+ASConvenience.h in Headers */,
@@ -1443,6 +1452,7 @@
14431452
34EFC75F1B701C8600AD841F /* ASInsetLayoutSpec.h in Headers */,
14441453
34EFC75D1B701BE900AD841F /* ASInternalHelpers.h in Headers */,
14451454
34EFC7671B701CD900AD841F /* ASLayout.h in Headers */,
1455+
DEC146B71C37A16A004A0EE7 /* ASCollectionInternal.h in Headers */,
14461456
34EFC7691B701CE100AD841F /* ASLayoutable.h in Headers */,
14471457
9CDC18CD1B910E12004965E2 /* ASLayoutablePrivate.h in Headers */,
14481458
B35062201B010EFD0018CF92 /* ASLayoutController.h in Headers */,
@@ -1711,7 +1721,7 @@
17111721
AC6456091B0A335000CF11B8 /* ASCellNode.m in Sources */,
17121722
DE8BEAC31C2DF3FC00D57C12 /* ASDelegateProxy.m in Sources */,
17131723
ACF6ED1D1B17843500DA7C62 /* ASCenterLayoutSpec.mm in Sources */,
1714-
18C2ED801B9B7DE800F627B3 /* ASCollectionNode.m in Sources */,
1724+
18C2ED801B9B7DE800F627B3 /* ASCollectionNode.mm in Sources */,
17151725
92DD2FE41BF4B97E0074C9DD /* ASMapNode.mm in Sources */,
17161726
AC3C4A521A1139C100143C57 /* ASCollectionView.mm in Sources */,
17171727
205F0E1E1B373A2C007741D0 /* ASCollectionViewLayoutController.mm in Sources */,
@@ -1724,6 +1734,7 @@
17241734
058D0A2A195D050800B7D73C /* ASDisplayNode+UIViewBridge.mm in Sources */,
17251735
25E327581C16819500A2170C /* ASPagerNode.m in Sources */,
17261736
058D0A14195D050800B7D73C /* ASDisplayNode.mm in Sources */,
1737+
DEC146B81C37A16A004A0EE7 /* ASCollectionInternal.m in Sources */,
17271738
058D0A15195D050800B7D73C /* ASDisplayNodeExtras.mm in Sources */,
17281739
0587F9BE1A7309ED00AFF0BA /* ASEditableTextNode.mm in Sources */,
17291740
464052231A3F83C40061C0BA /* ASFlowLayoutController.mm in Sources */,
@@ -1845,7 +1856,7 @@
18451856
B35062161B010EFD0018CF92 /* ASBatchContext.mm in Sources */,
18461857
AC47D9421B3B891B00AAEE9D /* ASCellNode.m in Sources */,
18471858
34EFC7641B701CC600AD841F /* ASCenterLayoutSpec.mm in Sources */,
1848-
18C2ED831B9B7DE800F627B3 /* ASCollectionNode.m in Sources */,
1859+
18C2ED831B9B7DE800F627B3 /* ASCollectionNode.mm in Sources */,
18491860
B35061F61B010EFD0018CF92 /* ASCollectionView.mm in Sources */,
18501861
509E68641B3AEDB7009B9150 /* ASCollectionViewLayoutController.mm in Sources */,
18511862
B35061F91B010EFD0018CF92 /* ASControlNode.m in Sources */,
@@ -1855,6 +1866,7 @@
18551866
B350624E1B010EFD0018CF92 /* ASDisplayNode+AsyncDisplay.mm in Sources */,
18561867
25E327591C16819500A2170C /* ASPagerNode.m in Sources */,
18571868
B35062501B010EFD0018CF92 /* ASDisplayNode+DebugTiming.mm in Sources */,
1869+
DEC146B91C37A16A004A0EE7 /* ASCollectionInternal.m in Sources */,
18581870
254C6B891BF94F8A003EC431 /* ASTextKitRenderer+Positioning.mm in Sources */,
18591871
B35062511B010EFD0018CF92 /* ASDisplayNode+UIViewBridge.mm in Sources */,
18601872
B35061FC1B010EFD0018CF92 /* ASDisplayNode.mm in Sources */,
Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
//
88

99
#import "ASCollectionNode.h"
10+
#import "ASCollectionInternal.h"
1011
#import "ASDisplayNode+Subclasses.h"
12+
#include <vector>
1113

1214
@interface _ASCollectionPendingState : NSObject
1315
@property (weak, nonatomic) id <ASCollectionDelegate> delegate;
@@ -17,12 +19,39 @@ @interface _ASCollectionPendingState : NSObject
1719
@implementation _ASCollectionPendingState
1820
@end
1921

20-
@interface ASCollectionNode ()
21-
@property (nonatomic) _ASCollectionPendingState *pendingState;
22+
#if 0 // This is not used yet, but will provide a way to avoid creating the view to set range values.
23+
@implementation _ASCollectionPendingState
24+
{
25+
std::vector<ASRangeTuningParameters> _tuningParameters;
26+
}
27+
28+
- (instancetype)init
29+
{
30+
if (!(self = [super init])) {
31+
return nil;
32+
}
33+
_tuningParameters = std::vector<ASRangeTuningParameters>(ASLayoutRangeTypeCount);
34+
return self;
35+
}
36+
37+
- (ASRangeTuningParameters)tuningParametersForRangeType:(ASLayoutRangeType)rangeType
38+
{
39+
ASDisplayNodeAssert(rangeType < _tuningParameters.size(), @"Requesting a range that is OOB for the configured tuning parameters");
40+
return _tuningParameters[rangeType];
41+
}
42+
43+
- (void)setTuningParameters:(ASRangeTuningParameters)tuningParameters forRangeType:(ASLayoutRangeType)rangeType
44+
{
45+
ASDisplayNodeAssert(rangeType < _tuningParameters.size(), @"Requesting a range that is OOB for the configured tuning parameters");
46+
ASDisplayNodeAssert(rangeType != ASLayoutRangeTypeVisible, @"Must not set Visible range tuning parameters (always 0, 0)");
47+
_tuningParameters[rangeType] = tuningParameters;
48+
}
49+
2250
@end
51+
#endif
2352

24-
@interface ASCollectionView ()
25-
- (instancetype)_initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout ownedByNode:(BOOL)ownedByNode;
53+
@interface ASCollectionNode ()
54+
@property (nonatomic) _ASCollectionPendingState *pendingState;
2655
@end
2756

2857
@implementation ASCollectionNode
@@ -42,7 +71,10 @@ - (instancetype)initWithCollectionViewLayout:(UICollectionViewLayout *)layout
4271

4372
- (instancetype)_initWithCollectionView:(ASCollectionView *)collectionView
4473
{
45-
if (self = [super initWithViewBlock:^UIView *{ return collectionView; }]) {
74+
ASDisplayNodeViewBlock collectionViewBlock = ^UIView *{ return collectionView; };
75+
76+
if (self = [super initWithViewBlock:collectionViewBlock]) {
77+
// ASCollectionView created directly by the app. Trigger -loadView to set up collectionNode pointer.
4678
__unused ASCollectionView *collectionView = [self view];
4779
return self;
4880
}
@@ -70,6 +102,7 @@ - (void)didLoad
70102
self.pendingState = nil;
71103

72104
ASCollectionView *view = self.view;
105+
view.collectionNode = self;
73106
view.asyncDelegate = pendingState.delegate;
74107
view.asyncDataSource = pendingState.dataSource;
75108
}
@@ -129,7 +162,7 @@ - (ASCollectionView *)view
129162

130163
- (void)visibilityDidChange:(BOOL)isVisible
131164
{
132-
165+
NSLog(@"%@ - visible: %d", self, isVisible);
133166
}
134167

135168
- (void)clearContents
@@ -148,12 +181,12 @@ - (void)clearFetchedData
148181

149182
- (ASRangeTuningParameters)tuningParametersForRangeType:(ASLayoutRangeType)rangeType
150183
{
151-
return [self.view tuningParametersForRangeType:rangeType];
184+
return [self.view.rangeController tuningParametersForRangeType:rangeType];
152185
}
153186

154187
- (void)setTuningParameters:(ASRangeTuningParameters)tuningParameters forRangeType:(ASLayoutRangeType)rangeType
155188
{
156-
return [self.view setTuningParameters:tuningParameters forRangeType:rangeType];
189+
return [self.view.rangeController setTuningParameters:tuningParameters forRangeType:rangeType];
157190
}
158191

159192
- (void)reloadDataWithCompletion:(void (^)())completion

AsyncDisplayKit/ASCollectionView.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#import <AsyncDisplayKit/ASCollectionViewFlowLayoutInspector.h>
1616

1717
@class ASCellNode;
18+
@class ASCollectionNode;
1819
@protocol ASCollectionDataSource;
1920
@protocol ASCollectionDelegate;
2021
@protocol ASCollectionViewLayoutInspecting;
@@ -43,6 +44,9 @@ NS_ASSUME_NONNULL_BEGIN
4344
- (instancetype)initWithCollectionViewLayout:(UICollectionViewLayout *)layout;
4445
- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout;
4546

47+
// The corresponding ASCollectionNode, which exists even if directly allocating & handling the view class.
48+
@property (nonatomic, weak, readonly) ASCollectionNode *collectionNode;
49+
4650
@property (nonatomic, weak) id<ASCollectionDelegate> asyncDelegate;
4751
@property (nonatomic, weak) id<ASCollectionDataSource> asyncDataSource;
4852

AsyncDisplayKit/ASCollectionView.mm

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,10 @@ @interface ASCollectionView () <ASRangeControllerDataSource, ASRangeControllerDe
105105
// We create a node so that logic related to appearance, memory management, etc can be located there
106106
// for both the node-based and view-based version of the table.
107107
// This also permits sharing logic with ASTableNode, as the superclass is not UIKit-controlled.
108-
@property (nonatomic, retain) ASCollectionNode *strongCollectionNode;
108+
@property (nonatomic, strong) ASCollectionNode *strongCollectionNode;
109+
110+
// Always set, whether ASCollectionView is created directly or via ASCollectionNode.
111+
@property (nonatomic, weak) ASCollectionNode *collectionNode;
109112

110113
@end
111114

@@ -221,8 +224,7 @@ - (ASCollectionViewFlowLayoutInspector *)flowLayoutInspector
221224
if (_flowLayoutInspector == nil) {
222225
UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionViewLayout;
223226
ASDisplayNodeAssertNotNil(layout, @"Collection view layout must be a flow layout to use the built-in inspector");
224-
_flowLayoutInspector = [[ASCollectionViewFlowLayoutInspector alloc] initWithCollectionView:self
225-
flowLayout:layout];
227+
_flowLayoutInspector = [[ASCollectionViewFlowLayoutInspector alloc] initWithCollectionView:self flowLayout:layout];
226228
}
227229
return _flowLayoutInspector;
228230
}
@@ -323,14 +325,15 @@ - (void)setAsyncDelegate:(id<ASCollectionViewDelegate>)asyncDelegate
323325

324326
- (void)setTuningParameters:(ASRangeTuningParameters)tuningParameters forRangeType:(ASLayoutRangeType)rangeType
325327
{
326-
[_rangeController setTuningParameters:tuningParameters forRangeType:rangeType];
328+
[_collectionNode setTuningParameters:tuningParameters forRangeType:rangeType];
327329
}
328330

329331
- (ASRangeTuningParameters)tuningParametersForRangeType:(ASLayoutRangeType)rangeType
330332
{
331-
return [_rangeController tuningParametersForRangeType:rangeType];
333+
return [_collectionNode tuningParametersForRangeType:rangeType];
332334
}
333335

336+
// These deprecated methods harken back from a time where only one range type existed.
334337
- (ASRangeTuningParameters)rangeTuningParameters
335338
{
336339
return [self tuningParametersForRangeType:ASLayoutRangeTypeDisplay];
@@ -762,6 +765,11 @@ - (NSUInteger)dataController:(ASCollectionDataController *)dataController number
762765

763766
#pragma mark - ASRangeControllerDataSource
764767

768+
- (ASRangeController *)rangeController
769+
{
770+
return _rangeController;
771+
}
772+
765773
- (NSArray *)visibleNodeIndexPathsForRangeController:(ASRangeController *)rangeController
766774
{
767775
ASDisplayNodeAssertMainThread();

AsyncDisplayKit/Details/ASAbstractLayoutController.mm

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@
77
*/
88

99
#import "ASAbstractLayoutController.h"
10-
11-
#include <vector>
12-
1310
#import "ASAssert.h"
11+
#include <vector>
1412

1513
@interface ASAbstractLayoutController () {
1614
std::vector<ASRangeTuningParameters> _tuningParameters;
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//
2+
// ASCollectionInternal.h
3+
// AsyncDisplayKit
4+
//
5+
// Created by Scott Goodson on 1/1/16.
6+
// Copyright © 2016 Facebook. All rights reserved.
7+
//
8+
9+
#import "ASCollectionView.h"
10+
#import "ASCollectionNode.h"
11+
#import "ASRangeController.h"
12+
13+
@interface ASCollectionView ()
14+
- (instancetype)_initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout ownedByNode:(BOOL)ownedByNode;
15+
16+
@property (nonatomic, weak, readwrite) ASCollectionNode *collectionNode;
17+
@property (nonatomic, strong, readonly) ASRangeController *rangeController;
18+
@end
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
//
2+
// ASCollectionInternal.m
3+
// AsyncDisplayKit
4+
//
5+
// Created by Scott Goodson on 1/1/16.
6+
// Copyright © 2016 Facebook. All rights reserved.
7+
//
8+
9+
#import "ASCollectionInternal.h"

AsyncDisplayKit/Details/ASRangeControllerBeta.mm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ - (void)_updateVisibleNodeIndexPaths
124124
NSLog(@"indexPath %@, Visible: %d, Display: %d, FetchData: %d", indexPath, [visibleIndexPaths containsObject:indexPath], [displayIndexPaths containsObject:indexPath], [fetchDataIndexPaths containsObject:indexPath]);
125125
}
126126
*/
127+
127128

128129
_rangeIsValid = YES;
129130
_queuedRangeUpdate = NO;

examples/CollectionViewWithViewControllerCells/Sample.xcodeproj/project.pbxproj

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@
130130
AC3C4A5B1A11F47200143C57 /* Frameworks */,
131131
AC3C4A5C1A11F47200143C57 /* Resources */,
132132
A6902C454C7661D0D277AC62 /* Copy Pods Resources */,
133-
EC37EEC9933F5786936BFE7C /* Embed Pods Frameworks */,
134133
);
135134
buildRules = (
136135
);
@@ -201,21 +200,6 @@
201200
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n";
202201
showEnvVarsInLog = 0;
203202
};
204-
EC37EEC9933F5786936BFE7C /* Embed Pods Frameworks */ = {
205-
isa = PBXShellScriptBuildPhase;
206-
buildActionMask = 2147483647;
207-
files = (
208-
);
209-
inputPaths = (
210-
);
211-
name = "Embed Pods Frameworks";
212-
outputPaths = (
213-
);
214-
runOnlyForDeploymentPostprocessing = 0;
215-
shellPath = /bin/sh;
216-
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n";
217-
showEnvVarsInLog = 0;
218-
};
219203
F868CFBB21824CC9521B6588 /* Check Pods Manifest.lock */ = {
220204
isa = PBXShellScriptBuildPhase;
221205
buildActionMask = 2147483647;

0 commit comments

Comments
 (0)