子类化自定义 UICollectionViewLayout 实现一定的删除和插入效果

Posted

技术标签:

【中文标题】子类化自定义 UICollectionViewLayout 实现一定的删除和插入效果【英文标题】:Subclassing custom UICollectionViewLayout to achieve certain deletion and insertion effect 【发布时间】:2016-11-30 07:05:03 【问题描述】:

以下是我希望实现的目标。

    我们有一个同时显示三个项目的水平视图。 当我们单击一个按钮时,三个项目滑出视图并被删除。然后再创建 3 个项目并将其移到视图中以替换之前的 3 个项目。 即使总共只有4个项目,我们也可以无休止地更改项目。

我正在考虑通过子类化 uicollectionviewlayout 并使用以下两个函数来使用 collectionView 来实现这一点。

 initialLayoutAttributesForAppearingDecorationElementOfKind:atIndexPath:
finalLayoutAttributesForDisappearingDecorationElementOfKind:atIndexPath:

但我无法做到这一点。任何人都知道我该如何实现这一目标?

提前致谢!

【问题讨论】:

具有自定义布局的集合视图可能很难做到正确。您可能希望从两个水平的UIStackViews 开始,每个具有 3 个元素,然后只为一个离屏和另一个开动。首次通过会更容易实现。 @par 我明白了.. 非常感谢您的建议.. 我一定会检查它是否是一个好的解决方案(: 【参考方案1】:

相反,您为什么不使用水平 flowLayout 并在按下按钮时更新集合视图的数据源并使用移出动画重新加载/插入Cells?

【讨论】:

以上是关于子类化自定义 UICollectionViewLayout 实现一定的删除和插入效果的主要内容,如果未能解决你的问题,请参考以下文章

在界面生成器中使用现有的自定义 UIView

使用核心数据实例化自定义对象

从 NSDictionary 实例化自定义类

从 XIB 问题动态实例化自定义 UIView(此代码有啥问题)?

以编程方式实例化自定义视图控制器并通过标签获取子视图

在Woocommerce中Ajax化自定义迷你购物车小部件