gpt4 book ai didi

ios - UICollectionView for Springboard 像文件夹

转载 作者:IT王子 更新时间:2023-10-29 07:43:36 29 4
gpt4 key购买 nike

我正在尝试实现以下效果:

UICollectionView 显示父类型对象的单元格网格,例如。 G。相册当我点击其中一个项目时,我想将该元素滚动到屏幕顶部并从中打开一个类似 Springboard 的文件夹。在该文件夹区域内,应显示另一个集合,其中包含详细信息项目,即。 e.该相册的个人照片。点击剩余的“父” View 会再次关闭文件夹。查看此架构:

enter image description here

到目前为止,我所做的是定期查看相册的集合。当我选择一个时,它会滚动到所选项目到顶部,然后使用 JWFolders在那个地方打开一个空文件夹。显示后,我触发周围的 UINavigationController 以使用详细信息项推送我的第二个 View Controller 。该 View 的布局使用户看起来好像它仍然是相同的 View 。

这种方法有几个问题,我想知道如何做得更好:

  1. JWFolders 截取屏幕截图并将其上下两半制作动画以实现打开效果。这没问题,但在 iPad3 上相当慢,因为它移动了很多像素,而 iPad3 的 GPU 不能胜任这项任务。

  2. 第二个 View 需要像素完美才能与第一个 View 相匹配。这很可能会意外损坏。

  3. 对于 View Controller 转换可以使用哪些动画,我很有限。默认的 UINavigationController 从右侧推送是不合适的。我覆盖它以进行交叉溶解,但它仍然远非理想。

我想获得有关如何以可维护的方式解决此问题的指示,这种方式不需要针对框架的设计目的进行大量创造性的黑客攻击。我可能在这里遗漏了一些明显的东西,因此非常感谢指向示例或一般建议的指针。

更新:

我稍微改变了方法。现在我使用一个容器 View Controller ,它有两个嵌入式 Collection View Controller 。一张用于“相册”,一张用于底部的“照片”部分。在两者中间使用 UIImageView 我可以完成指向上方的三角形。从维护的角度来看,这也很好,因为这两个集合完全分开处理,使维护更容易。

该应用程序使用自动布局,因此我可以通过修改约束来更改两个嵌入 View 各自占用的空间量。这比使用 JWFolders 的基于屏幕截图的方法要快得多,并且在 iPad3 上也能很好地工作。

几乎让我到达了我想去的地方。剩下的一件事就是让开场动画正确。我想同时滚动相册集合,以便点击的项目到达顶部并展开照片集合,三角形指向相册单元格。

我能否通过布局约束以某种方式将下方 View “连接”到该单元格,以便 scrollToItemAtIndexPath:atScrollPosition:animated: 调用拖动下方 View 打开?

最佳答案

为了解决这个问题,我会丢失库并导致 iOS 在没有屏幕截图或其他技巧的情况下移动这些显示元素。在点击时,使点击的图标保持其正常外观,同时使所有其他图标变暗。从点击图标所在行的顶部到末尾查找 Collection View 的内容。创建两个新的 Collection View - 一个包含上半部分,包括您点击的图标,另一个包含下面的其余部分。将这些 View 分开设置动画,以便为文件夹 View 腾出空间。

文件夹 View 是出现在创建的间隙中的另一个 UICollectionView。在主视图中,根据抽屉是打开还是关闭,会显示一个或三个 View 。我可能会考虑创建一个带有 Collection View 的 View Controller ,并使用 View Controller 包含来管理所有三个 View 。您可以完全控制这些 View 的呈现方式,因此您可以像 Springboard 那样同时上下动画上下 View 以显示文件夹 View 。

当这一切正常时,您可以概括并开始做一些事情,例如决定将点击的图标作为底部集合的一部分,如果图标在屏幕下方,则文件夹显示在上方。

(我犹豫要不要回答这个问题,因为有大量赞成票但没有答案,所以我可能漏掉了一些东西——但这就是我开始尝试实现 Springboard 效果的方式。)

关于ios - UICollectionView for Springboard 像文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14891386/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com