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

Posted gavanwanggw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

}








以上是关于UICollectionView在初始化的时候移动到某个距离的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UICollectionView 中向下移动某些单元格

屏幕旋转后如何在 UICollectionView 中跟踪单元格的移动

如何使 UICollectionView 单元格可移动?

防止 uicollectionview 单元格窗体在有空间时向右移动 - SWIFT

UICollectionView 在移动应用上创建新闻提要的代码

滑动时如何使用左右移动的项目制作 UICollectionview?