Apple Photos collectionview 捏缩放如何工作?
Posted
技术标签:
【中文标题】Apple Photos collectionview 捏缩放如何工作?【英文标题】:How Apple Photos collectionview pinch zoom works? 【发布时间】:2020-12-31 15:32:01 【问题描述】:如果您转到 Apple Photos 并进行缩放,您可以放大/缩小以更改网格中的列数。我假设它使用UICollectionView
,但是,我不知道它是如何获得这个动画的。
以编程方式更改 UICollectionView 中的列数并不难,我不太了解动画。
有什么想法吗?
【问题讨论】:
任何答案都是猜测。看起来他们正在观看手势,并准备好使用不同布局的一整套集合视图,然后交叉融合到系列中的下一个。 【参考方案1】:看起来手势触发了新的布局。有一整门课程致力于优雅地在布局之间切换:UICollectionViewTransitionLayout
。文档部分说:
您可以按原样使用 UICollectionViewTransitionLayout 或将其子类化为 为您的应用程序提供专门的行为。过渡的常见用途 布局是创建交互式过渡,例如那些 由手势识别器或触摸事件驱动。
与基于时间的常规动画不同,布局之间的过渡由您更新的transitionProgress
属性驱动,因此过渡可以轻松跟踪手势。您可以在照片中准确地看到这种情况:如果您在捏合和缩放之间交替,则过渡会前后移动。
Photos 有可能使用 UICollectionViewTransitionLayout
的子类来提供更完美的用户体验,但如果您想模仿 Photos 的功能,我认为这个类是正确的开始方式.
【讨论】:
这非常有帮助,感谢您的见解。我见过一个在不同尺寸的布局之间转换的例子。苹果更进一步,不知何故能够做淡化效果和一些细胞从屏幕上剪掉。如果您有任何见解,很想听听。 如果您想包含淡入淡出,请使用transitionProgress
属性来驱动与淡入或淡出的布局关联的UICollectionViewLayoutAttributes
的alpha
属性。以上是关于Apple Photos collectionview 捏缩放如何工作?的主要内容,如果未能解决你的问题,请参考以下文章