我有一个UICollectionView
,我填充了几个单元格和自定义流程布局。这在纵向模式下效果很好。当我旋转到横向时,我遇到一个问题,我无法在屏幕右侧向上/向下滑动。它似乎是对触摸没有反应的正确w-h像素。集合视图确实正确地绘制单元格,其他一切似乎正常。此外,如果我在工作区中开始滑动并沿对角线进入无响应区域,则拖动继续工作。
旋转设备时,我会拨打以下电话:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
_currentIndex = self.assetsCollectionView.contentOffset.y / self.assetsCollectionView.bounds.size.height;
[self.assetsCollectionView.collectionViewLayout invalidateLayout];
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
float y = _currentIndex * self.assetsCollectionView.bounds.size.height;
[self.assetsCollectionView setContentOffset:CGPointMake(0, y) animated:NO];
}
这些对我来说很好看,当我完全评论它们时,我会得到同样的行为。
其他细节:UICollectionView是我的View Controller中唯一的UI组件,除了我确定不是问题的小细节标签。
我在UICollectionViewFlowLayout的两个子类之间切换,以便单元格可以扩展到全屏并返回,但无论是哪种布局,甚至在我将它们交换之前,我都遇到了同样的问题。另一个细节是全屏布局是pageEnabled而较小的布局是pageEnabled。
包含UIViewController在UITabController中。
还有一点需要注意:我已经仔细检查了我的布局限制,以确保那里也没有有趣的业务。
有什么想法吗?
答案 0 :(得分:3)
我有完全相同的问题。在花了一个晚上试图弄清楚出了什么问题后,我设法通过在CollectionView视图控制器类的viewDidLoad方法中添加这两行来解决它。 (我不使用自动布局)
self.view.autoresizesSubviews = YES;
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
我希望这也解决了你的问题。