New file |
| | |
| | | // |
| | | // LMJCollectionViewController.m |
| | | // PLMMPRJK |
| | | // |
| | | // Created by windshan on 2017/4/11. |
| | | // Copyright © 2017年 GoMePrjk. All rights reserved. |
| | | // |
| | | |
| | | #import "LMJCollectionViewController.h" |
| | | |
| | | @interface LMJCollectionViewController ()<LMJVerticalFlowLayoutDelegate> |
| | | |
| | | |
| | | @end |
| | | |
| | | @implementation LMJCollectionViewController |
| | | |
| | | - (void)viewDidLoad { |
| | | [super viewDidLoad]; |
| | | |
| | | [self setupBaseLMJCollectionViewControllerUI]; |
| | | |
| | | [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([UICollectionViewCell class])]; |
| | | } |
| | | |
| | | - (void)setupBaseLMJCollectionViewControllerUI |
| | | { |
| | | self.collectionView.backgroundColor = self.view.backgroundColor; |
| | | if ([self.parentViewController isKindOfClass:[UINavigationController class]]) { |
| | | UIEdgeInsets contentInset = self.collectionView.contentInset; |
| | | contentInset.top += self.lmj_navgationBar.lmj_height; |
| | | self.collectionView.contentInset = contentInset; |
| | | } |
| | | } |
| | | |
| | | #pragma mark - delegate |
| | | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { |
| | | return 100; |
| | | } |
| | | |
| | | - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath |
| | | { |
| | | UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([UICollectionViewCell class]) forIndexPath:indexPath]; |
| | | |
| | | cell.contentView.backgroundColor = [UIColor yellowColor]; |
| | | |
| | | cell.contentView.clipsToBounds = YES; |
| | | if (![cell.contentView viewWithTag:100]) { |
| | | UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 50)]; |
| | | label.tag = 100; |
| | | label.textColor = [UIColor redColor]; |
| | | label.font = [UIFont boldSystemFontOfSize:17]; |
| | | [cell.contentView addSubview:label]; |
| | | } |
| | | |
| | | UILabel *label = [cell.contentView viewWithTag:100]; |
| | | |
| | | label.text = [NSString stringWithFormat:@"%zd", indexPath.item]; |
| | | |
| | | return cell; |
| | | } |
| | | |
| | | #pragma mark - scrollDeleggate |
| | | - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView |
| | | { |
| | | UIEdgeInsets contentInset = self.collectionView.contentInset; |
| | | contentInset.bottom -= self.collectionView.mj_footer.lmj_height; |
| | | self.collectionView.scrollIndicatorInsets = contentInset; |
| | | [self.view endEditing:YES]; |
| | | } |
| | | |
| | | - (UICollectionView *)collectionView |
| | | { |
| | | if(_collectionView == nil) |
| | | { |
| | | UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:[UICollectionViewFlowLayout new]]; |
| | | [self.view addSubview:collectionView]; |
| | | _collectionView = collectionView; |
| | | UICollectionViewLayout *myLayout = [self collectionViewController:self layoutForCollectionView:collectionView]; |
| | | collectionView.collectionViewLayout = myLayout; |
| | | collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; |
| | | collectionView.dataSource = self; |
| | | collectionView.delegate = self; |
| | | |
| | | } |
| | | return _collectionView; |
| | | } |
| | | |
| | | |
| | | #pragma mark - LMJCollectionViewControllerDataSource |
| | | - (UICollectionViewLayout *)collectionViewController:(LMJCollectionViewController *)collectionViewController layoutForCollectionView:(UICollectionView *)collectionView |
| | | { |
| | | LMJVerticalFlowLayout *myLayout = [[LMJVerticalFlowLayout alloc] initWithDelegate:self]; |
| | | return myLayout; |
| | | } |
| | | |
| | | |
| | | #pragma mark - LMJVerticalFlowLayoutDelegate |
| | | |
| | | - (CGFloat)waterflowLayout:(LMJVerticalFlowLayout *)waterflowLayout collectionView:(UICollectionView *)collectionView heightForItemAtIndexPath:(NSIndexPath *)indexPath itemWidth:(CGFloat)itemWidth |
| | | { |
| | | return itemWidth * (arc4random() % 4 + 1); |
| | | } |
| | | |
| | | |
| | | @end |