/* This file provided by Facebook is for non-commercial testing and evaluation * purposes only. Facebook reserves all rights not expressly granted. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #import "CollectionViewController.h" #import "KittenNode.h" @interface CollectionViewController () @property (nonatomic, strong) ASCollectionNode *collectionNode; @end @implementation CollectionViewController - (instancetype)init { UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; layout.minimumLineSpacing = 10; layout.minimumInteritemSpacing = 10; ASCollectionNode *collectionNode = [[ASCollectionNode alloc] initWithCollectionViewLayout:layout]; if (!(self = [super initWithNode:collectionNode])) return nil; self.title = @"Collection Node"; _collectionNode = collectionNode; collectionNode.dataSource = self; collectionNode.delegate = self; return self; } - (void)viewDidLoad { [super viewDidLoad]; self.collectionNode.view.contentInset = UIEdgeInsetsMake(20, 10, CGRectGetHeight(self.tabBarController.tabBar.frame), 10); } #pragma mark - ASCollectionDataSource - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return 50; } - (ASCellNode *)collectionView:(ASCollectionView *)collectionView nodeForItemAtIndexPath:(NSIndexPath *)indexPath { KittenNode *cell = [[KittenNode alloc] init]; cell.textNode.maximumNumberOfLines = 3; cell.imageTappedBlock = ^{ [KittenNode defaultImageTappedAction:self]; }; return cell; } - (ASSizeRange)collectionView:(ASCollectionView *)collectionView constrainedSizeForNodeAtIndexPath:(NSIndexPath *)indexPath { ASEnvironmentDisplayTraits displayTraits = self.collectionNode.environmentState.displayTraits; if (displayTraits.horizontalSizeClass == UIUserInterfaceSizeClassRegular) { return ASSizeRangeMake(CGSizeMake(200, 120), CGSizeMake(200, 120)); } return ASSizeRangeMake(CGSizeMake(132, 180), CGSizeMake(132, 180)); } @end