我有一个 UICollectionView 的框架
[UIScreen mainScreen].bounds
和这些属性:
_collectionView.pagingEnabled = YES;
_collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
单元格也具有集合视图的大小。当我旋转时,集合视图的 contentOffset 不适合新方向。它仍然具有与旋转前相同的偏移量。
为了解决这个问题,我在 didRotate 方法中手动更改了 contentOffset。
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
_collectionView.contentOffset = CGPointMake(_newContentOffsetX, _collectionView.contentOffset.y);
}
这有效,但看起来很糟糕。我也尝试滚动到当前的 IndexPath,但它有同样丑陋的行为:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
[_collectionView scrollToItemAtIndexPath:_currentIndexPath atScrollPosition:UICollectionViewScrollPositionLeft animated:NO];
}
我需要一个干净的过渡和在旋转设备时更新集合视图的内容偏移量的行为。