像 Chanel 应用程序一样自定义 Collection View 布局
Custom Collection View Layout like Chanel app
我正在尝试做一个像 Chanel 应用程序那样的自定义布局,您可以在 Appstore 中找到该应用程序。
https://itunes.apple.com/us/app/chanel-fashion/id409934435?mt=8
我知道他们正在使用 UICollectionView,但不知道如何开始。
交互感觉就像混合了分页滚动的表格视图。当您滚动元素时,第一个元素将自身定位在顶部。
- 从仅拖动和定位一个
UIView
开始。请参阅 UIGestureRecognizer
docs and look for existing examples 的可移动视图。您需要 UIPanGestureRecognizer
才能移动视图。
- 根据
Y
位置调整视图大小。
- 根据视图大小使用几个自动布局约束在该视图中创建和定位图像。
请注意,Chanel 应用程序针对这些约束具有不同的常量。对于最小视图高度,一个图像的顶部是 80% 高度,对于另一个图像它是 90% 高度。确保您可以从代码中操作约束(我认为从那里的代码创建所有内容是个好主意,XIB 不是很灵活)。
- 当您停止移动视图时,将视图 "anchoring" 调整到特定点(例如,顶部 = -75%、0%、75%、90%,与我在 Chanel 应用程序中看到的相比)。只需找到最近的一个并为它设置动画视图即可。
- 用 1 个视图完成后,将所有工作移至
NSView
子类(如果还没有)并创建这些视图的集合。
您可以创建 UICollectionView
,但我宁愿用一个简单的 NSArray
来创建它:我实际上没有看到在这里使用 UICollectionView
的理由;这是一个非常简单的结构。无论如何,您编写自己的手势识别器(不是吗?我看不到其他方式)-那么使用 UICollectionView
有什么意义?如果有一天你想扩展应用程序的功能,UICollectionView
不太可能帮助你。好吧,这是我假设的方法,你可以在研究的时候找到另一种方法。
- 在移动 "active" 视图时定位其他视图。手工完成,没有任何
UIScrollView
s.
- 编写一个函数,在移动视图时反映 "neighbor" 视图的 Y 位置。它应该 "slow down" 到屏幕底部。
我正在尝试做一个像 Chanel 应用程序那样的自定义布局,您可以在 Appstore 中找到该应用程序。 https://itunes.apple.com/us/app/chanel-fashion/id409934435?mt=8
我知道他们正在使用 UICollectionView,但不知道如何开始。 交互感觉就像混合了分页滚动的表格视图。当您滚动元素时,第一个元素将自身定位在顶部。
- 从仅拖动和定位一个
UIView
开始。请参阅UIGestureRecognizer
docs and look for existing examples 的可移动视图。您需要UIPanGestureRecognizer
才能移动视图。 - 根据
Y
位置调整视图大小。 - 根据视图大小使用几个自动布局约束在该视图中创建和定位图像。
请注意,Chanel 应用程序针对这些约束具有不同的常量。对于最小视图高度,一个图像的顶部是 80% 高度,对于另一个图像它是 90% 高度。确保您可以从代码中操作约束(我认为从那里的代码创建所有内容是个好主意,XIB 不是很灵活)。
- 当您停止移动视图时,将视图 "anchoring" 调整到特定点(例如,顶部 = -75%、0%、75%、90%,与我在 Chanel 应用程序中看到的相比)。只需找到最近的一个并为它设置动画视图即可。
- 用 1 个视图完成后,将所有工作移至
NSView
子类(如果还没有)并创建这些视图的集合。
您可以创建 UICollectionView
,但我宁愿用一个简单的 NSArray
来创建它:我实际上没有看到在这里使用 UICollectionView
的理由;这是一个非常简单的结构。无论如何,您编写自己的手势识别器(不是吗?我看不到其他方式)-那么使用 UICollectionView
有什么意义?如果有一天你想扩展应用程序的功能,UICollectionView
不太可能帮助你。好吧,这是我假设的方法,你可以在研究的时候找到另一种方法。
- 在移动 "active" 视图时定位其他视图。手工完成,没有任何
UIScrollView
s. - 编写一个函数,在移动视图时反映 "neighbor" 视图的 Y 位置。它应该 "slow down" 到屏幕底部。