【问题标题】:UITapGestureRecognizer doesn't fire after rotate旋转后 UITapGestureRecognizer 不会触发
【发布时间】:2013-11-18 11:03:08
【问题描述】:

我有一个TabBarController,它有两个标签。在每个选项卡中,我都有UICollectionViewUITapGestureRecognizer,每次点击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


【解决方案1】:

invalidateLayout 实际上不会使集合视图本身的布局无效,它会强制使内部单元格布局无效并重新计算 - doc

要处理集合视图框架更改,您必须像对待常规视图一样考虑它。尝试设置集合视图的自动调整大小掩码(例如在 viewDidLoad 中),例如:

self.cardCollectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;

更新

尝试将您的收藏视图的自动调整大小设置为http://d.pr/i/nk3o,代码如下:

self.cardCollectionView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|

;

UIViewAutoresizingFlexibleBottomMargin 重要的是说 UIKit 从哪里计算位置

【讨论】:

  • 改变方向后,我看到collectionViewCelles 已经被淹没并填满了所有collectionView,但是tapRecognizer 没有触发。我已经尝试过您的解决方案,但它也不起作用。
  • 尝试将您的collectionView 的backgroundColor 设置为[UIColor redColor] 之类的东西,看看collection view 的实际框架是什么——旋转后是否正确?
  • 我做到了,集合视图的大小是正确的,但仍然有触发 tapGesture 的问题
  • 如何添加手势?你删除 invalidateLayout 吗?
  • 我通过界面添加手势。现在,UITapGestureRecognizer 的属性看起来像 this 并且我清除了我的方法 willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 仍然可以正常旋转,但识别器在启动后无法正常工作,只有在我更改标签后。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多