我正在尝试做一个自定义布局,例如香奈儿应用程序,您可以在应用程序商店中找到该应用程序。https://itunes.apple.com/us/app/chanel-fashion/id409934435?mt=8 https://itunes.apple.com/us/app/chanel-fashion/id409934435?mt=8
我知道他们正在使用 UICollectionView,但不知道如何开始。
交互感觉就像是与分页滚动混合的桌面视图。当您滚动元素时,元素会增长,并且第一个元素将自身定位在顶部。
- 从仅拖动和定位一个开始
UIView
. See UIGestureRecognizer
docs https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIGestureRecognizer_Class/并寻找现有的examples https://stackoverflow.com/questions/14683991/make-a-uiview-draggable-with-the-finger可移动视图。你需要一个UIPanGestureRecognizer
移动视图。
- 根据视图调整视图大小
Y
位置。
- 使用几个自动布局约束根据视图大小在该视图内创建和定位图像。
请注意,Chanel 应用程序对这些约束有不同的常量。对于最小视图高度,一张图像的顶部高度为 80%,另一张图像的顶部高度为 90%。确保您可以操纵代码中的约束(我认为从代码中创建所有内容是个好主意,XIB 不是很灵活)。
- 当您停止移动视图时,使视图“锚定”到某些点(例如,从我在 Chanel 应用程序中看到的顶部 = -75%、0%、75%、90%)。只需找到最近的一个并将视图动画化即可。
- 使用 1 个视图完成后,将所有工作移至另一个视图
NSView
子类(如果尚不存在)并创建这些视图的集合。
您可以创建UICollectionView
,但我宁愿用一个简单的方法来做NSArray
: 我实际上没有看到使用的理由UICollectionView
这里;这是一个非常简单的结构。无论如何,你编写了自己的手势识别器(不是吗?我看不到其他方法) - 那么使用它有什么意义UICollectionView
?如果有一天您想扩展应用程序功能,UICollectionView
不太可能帮助你。嗯,这是我的假设方法,您可以在研究时找到另一种方法。
- 在移动“活动”视图时定位其他视图。用手做,不用任何东西
UIScrollView
s.
- 编写一个函数,在移动视图时反映“相邻”视图的 Y 位置。它应该“慢下来”到屏幕底部。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)