hpi*_*que 15 iphone uiinterfaceorientation ios uicollectionview
考虑一个UICollectionView,它在横向和纵向方向上具有不同数量的项目和不同的布局(即:间距).
当设备旋转时,需要做些什么才能对这些更改进行动画处理?我在" 收集视图编程指南"中找不到如何处理旋转的任何提及.
tit*_*coy 41
没有必要重新加载集合视图的数据 - 调用[collectionView.collectionViewLayout invalidateLayout]将导致集合视图更新其布局.
shouldInvalidateLayoutForBoundsChange:在UICollectionViewLayout子类中重写YES将导致在invalidateLayout集合视图的边界发生更改时(包括其大小更改时以及用户滚动其内容时)自动调用.
chr*_*ton 13
我根据方向有不同数量的部分,自动旋转没有改变它.我不得不添加对collectionView的调用来重新加载数据.我正在使用UICollectionViewController,如果您还有其他内容,请调整到您自己的集合视图属性:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:( NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
[self.collectionView reloadData];
}
Run Code Online (Sandbox Code Playgroud)
最快捷的方式是混合所有其他答案.
只需在ViewController中添加以下行:
override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
self.mCollectionView.collectionViewLayout.invalidateLayout()
}
Run Code Online (Sandbox Code Playgroud)
您不需要reloadData.
| 归档时间: |
|
| 查看次数: |
15973 次 |
| 最近记录: |