私はUICollectionViewでグリッドビューを作成していて、ページングでスクロールしたいと思っています。グリッドビュー(UICollectionView)のオフセットがページングスクロールで徐々にシフトします
今問題があります。グリッドのオフセットは、ページングスクロールによって徐々ににシフトします。
次のページセルの左上を画面の上に合わせたいと思います。
私のコードは、以下のように
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
#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;
}
私は感謝しますあなたが私に良い解決策を提供するならば。
ありがとうございます。
申し訳ありませんが、私はあなたが言っているものを手に入れることができませんでした。私が設定する必要があるコードまたは正確なプロパティ名を私に教えてください。 –
私はあなたの提案を試み、それは私の問題を解決しました。ありがとうございました。 –