UICollectionView无法响应在横向模式下滑动右侧w-h像素

时间:2013-12-03 22:27:11

标签: ios uiviewcontroller uiscrollview uicollectionview uiinterfaceorientation

我有一个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中。

还有一点需要注意:我已经仔细检查了我的布局限制,以确保那里也没有有趣的业务。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我有完全相同的问题。在花了一个晚上试图弄清楚出了什么问题后,我设法通过在CollectionView视图控制器类的viewDidLoad方法中添加这两行来解决它。 (我不使用自动布局)

self.view.autoresizesSubviews = YES;

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

我希望这也解决了你的问题。