我试图理解,如何在标准天气iPhone应用程序中实现相同的垂直滚动行为(所有水平行为看起来很明显)。我已经看到了this个问题,但这还不够。目标是使用UIScrollView
和/或UITableView
构建视图层次结构,可能没有太多自定义动画。我为三种不同的状态制作了截图:
初始状态:
“刷新”状态(拖动):
详情状态(滚动):
我已经拥有的想法:将屏幕分为红色,黄色,绿色和蓝色模块看起来不错。
1)绿色+蓝色区域(和黄色?)非常接近UITableView
,绿色模块作为标题视图,但有一个不标准的东西 - 我们可以将绿色模块移到顶部,跳过“刷新”区域。
2)即使在红色区域的顶部,我们也可以与蓝色/绿色模块进行交互,上下移动它们,因此,inset
的{{1}}可能是UITableView
个自定义动画{{1}在UIView
下?
答案 0 :(得分:1)
我们无法真正了解最新情况,因为它是苹果公司的消息来源。然而,没有很多选项可用于设计天气应用程序具有的逻辑类型,因此我们可以假设他们的过程涉及与此类似的步骤。
*您将编写大量布局和动画代码,以便以不同的速度,自定义布局和其他精细细节移动视图。
UICollectionViewLayout
子类化为 多向滚动 并创建自定义布局。子类化将允许完全控制集合的设计。如果您可以设计不那么复杂的东西,那么您可以使用UICollectionViewFlowLayout
以最少的开发来设计基于集合的布局。Collection View Programming Guide for iOS - Creating Custom Layouts
构建自定义布局
UICollectionViewCell
构建自定义布局以保存动态数据
CustomCollectionViewLayout
并让它子类UICollectionViewLayout
为collectionView提供有关单元格的信息。此布局仅为集合视图提供要向用户显示的信息。这意味着它不会成为您的UI的一部分。UICollectionViewLayout Class Reference
每个布局对象都应该实现以下方法以符合协议:
collectionViewContentSize
layoutAttributesForElementsInRect
layoutAttributesForItemAtIndexPath
shouldInvalidateLayoutForBoundsChange