【发布时间】:2013-11-18 11:03:08
【问题描述】:
我有一个TabBarController,它有两个标签。在每个选项卡中,我都有UICollectionView 和UITapGestureRecognizer,每次点击collectionView 时都会触发。应用程序启动后一切正常。但是如果我旋转到横向,TapGestureRecognizer 只会在collectionView 的旧框架中触发。它绝对忽略了屏幕的右侧。
但是,如果我切换到另一个选项卡然后再返回,它也适用于横向。我只是不明白我做错了什么。
这就是我改变collectionView的方向模式的方式:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
[self.cardCollectionView.collectionViewLayout invalidateLayout];
}
【问题讨论】:
-
旋转后检查父视图的大小。
-
父视图的大小在旋转后是正确的,但识别器仍然只能在旋转前的框架中工作。在我切换到另一个选项卡并返回后,它立即开始正常工作。
-
我也有同样的问题。旋转后,如果设备为纵向,TapGestureRecognizer 将不起作用。如果设备是横向的,它就可以工作。
标签: ios objective-c uicollectionview uitapgesturerecognizer