gavanwanggw

导航

UICollectionView在初始化的时候移动到某个距离

#pragma mark  -- 使用场景:选中非第一张图片用CollectionView进行浏览时,CollectionView滑动到对应的位置

#pragma mark  -- 重点在于UICollectionViewFlowLayout的prepareLayout方法的使用


#pragma mark  -- 自己定义UICollectionViewFlowLayout的h文件

@interface SSCollectionViewFlowLayout : UICollectionViewFlowLayout

/**

 *  collectionView的偏移量

 */

@property (nonatomic, assign) CGPoint offsetpoint;

@end


#pragma mark  -- 自己定义UICollectionViewFlowLayout的m文件

@implementation SSCollectionViewFlowLayout

- (instancetype)init{

    self = [super init];

    if (self) {

        self.scrollDirection = UICollectionViewScrollDirectionHorizontal;

    }

    return self;

}


- (void)prepareLayout{

    [super prepareLayout];

    self.collectionView.contentOffset = self.offsetpoint;

}


- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)oldBounds{

    

    return NO;

}


#pragma mark  --  剩下的工作就是在UICollectionView 所在的ViewController设置偏移量

@property (nonatomic, strong) SSCollectionViewFlowLayout *viewLayout;

@property (nonatomic, strong) UICollectionView *ssCollectionView;



- (void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

    self.ssCollectionView.frame = CGRectMake(0.f, 0.f, ScreenWidth, ScreenHeight);

    self.viewLayout.offsetpoint = CGPointMake(ScreenWidth *self.indexNumber, 0.f);

}


- (UICollectionView *)ssCollectionView{

    if (_ssCollectionView != nil) {

        return _ssCollectionView;

    }

    self.viewLayout = [[SSCollectionViewFlowLayout alloc] init];

    _ssCollectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:self.viewLayout];

    _ssCollectionView.showsHorizontalScrollIndicator = FALSE; // 去掉滚动栏

    _ssCollectionView.pagingEnabled = YES;

    _ssCollectionView.delegate = self;

    _ssCollectionView.dataSource = self;

    [_ssCollectionView registerClass:[CustomCollectionViewCell class] forCellWithReuseIdentifier:@"CollectionCell"];

    return _ssCollectionView;

}








posted on 2017-08-19 18:40  gavanwanggw  阅读(283)  评论(0编辑  收藏  举报