標籤:turn art fse should source span use end 檔案
#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在初始化的時候移動到某個距離