Kon*_*tin 5 objective-c ios uitapgesturerecognizer uicollectionview
我有一个TabBarController有两个选项卡.在每个标签中我都有UICollectionView,UITapGestureRecognizer每次点击时都会触发collectionView.应用程序启动后,一切正常.但如果我转向横向,TapGestureRecognizer只能在collectionView旧框架中发射.它绝对忽略了屏幕的右侧.
但是,如果我切换到另一个选项卡然后返回,它也适用于横向方向.我只是不明白我做错了什么.
这就是我改变方向模式的方法collectionView:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
[self.cardCollectionView.collectionViewLayout invalidateLayout];
}
Run Code Online (Sandbox Code Playgroud)
invalidateLayout 实际上并不使集合视图本身的布局无效,它强制无效并重新计算内部单元格布局 - doc
要处理集合视图框架的更改,您必须像对待常规视图一样思考它。尝试设置集合视图的自动调整大小掩码(例如在 viewDidLoad 中),如下所示:
self.cardCollectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
Run Code Online (Sandbox Code Playgroud)
尝试将集合视图的自动调整大小设置为http://d.pr/i/nk3o,通过代码,它将如下所示:
self.cardCollectionView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|
Run Code Online (Sandbox Code Playgroud)
;
UIViewAutoresizingFlexibleBottomMargin很重要说UIKit从哪里计算位置
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |