2017-12-25 24 views
1

저는 UICollectionView로 그리드 뷰를 만들고 페이징으로 스크롤하려고합니다.그리드 뷰 (UICollectionView)의 오프셋이 페이징 스크롤로 점차적으로 이동합니다.

이제 문제가 있습니다. 그리드 의 오프셋은 페이징 스크롤로 점차적으로으로 이동합니다.

다음 페이지 셀의 왼쪽 상단을 화면의 왼쪽 상단에 맞추기를 원합니다.

enter image description here

내 코드

#define GRID_SPACE (20) 

- (id)initWithLayout:(UICollectionViewFlowLayout *)layout 
{ 
    self = [super initWithFrame:CGRectZero collectionViewLayout:layout]; 
    if (self) { 
     self.pagingEnabled = YES; 

     self.backgroundColor = UIColor.redColor; 

     self.delegate = self; 
     self.dataSource = self; 

     [self registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([UICollectionViewCell class])]; 
    } 
    return self; 
} 

#pragma mark - 
#pragma mark UICollectionViewDelegate 

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    CGSize selfSize = self.frame.size; 
    return CGSizeMake((selfSize.width - GRID_SPACE)/2, (selfSize.height - GRID_SPACE)/2); 
} 

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section 
{ 
    return GRID_SPACE; 
} 

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section 
{ 
    return GRID_SPACE; 
} 

내가 감사하겠습니다, 아래와 같이 ViewController.m

- (void)loadView 
{ 
    UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; 
    layout.scrollDirection = UICollectionViewScrollDirectionVertical; 

    self.view = [[GridView alloc] initWithLayout:layout]; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.navigationController.navigationBarHidden = YES; 
} 

- (BOOL)prefersStatusBarHidden 
{ 
    return YES; 
} 

GridView.m

입니다 네가 나에게 좋은 해결책을 제공한다면.

감사합니다.

답변