我有一个iPad应用程序,我使用一个UICollectionView和每个UICollectionViewCell只包含一个单一的UIImage。目前我显示每9个UIImage(3行 * 3列)每页,我有几个页面。
我想使用收缩手势来缩放整个UICollectionView,以增加/减少每页显示的行/列数,最好是在收缩手势期间有漂亮的缩放动画!
目前,我已经在UICollectionView上添加了一个收缩手势。我捕获收缩手势事件以使用比例因子计算行数/列数,如果比例因子已更改,则我使用以下内容更新整个UICollectionView:
[_theCollectionView performBatchUpdates:^{
[_theCollectionView deleteSections:[NSIndexSet indexSetWithIndex:0]];
[_theCollectionView insertSections:[NSIndexSet indexSetWithIndex:0]];
} completion:nil];
它的工作,但我没有平滑的动画在过渡。
UICollectionView继承自UIScrollView,有没有可能重用UIScrollView的收缩手势功能来达到我的目标?
3条答案
按热度按时间ih99xse11#
我假设您使用的是默认的UICollectionViewDelegateFlowLayout,对吗?然后确保您对代理方法做出相应的响应,并且当捏手势发生时,简单地使布局无效。
例如,如果我想调整每个项目的大小,同时捏住:
属性
self.scale
仅用于显示,您可以将相同的概念应用于任何其他属性,这不需要beginUpdates/endUpdates,因为用户自己携带刻度的计时。Here's a running project,如果您想查看它的实际操作。
z8dt9xmd2#
对不起我的2美分的问题,我已经找到了解决办法,非常简单。
在我的
PinchGesture
回调中,我刚刚完成了以下操作:我的
UICollectionView
的所有单元格都成功地改变了,并有了一个不错的transition
。von4xj4u3#
对于Xamarin.iOS开发者,我找到了这个解决方案:将UIScrollView元素添加到主视图,并将UICollectionView添加为UIScrollView的元素。然后为UIScrollView创建缩放委托。