- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 IGListKit 实现 Collection View 。它可以有一个或三个部分。数据源是实时填充的,因此需要在有新数据可用时刷新内容。
为此,我创建了一个符合 IGListDiffable
的数据源对象,它代表每个部分:
final class DataSource: NSObject {
var title: String?
var items: [SJResult] = []
}
extension DataSource: IGListDiffable {
public func diffIdentifier() -> NSObjectProtocol {
return self
}
public func isEqual(toDiffableObject object: IGListDiffable?) -> Bool {
if object === self {
return true
}
guard let obj = object as? DataSource else {
return false
}
return obj.items.count == items.count
}
}
在每个部分中,我想显示一个项目
列表。我设法通过重用相同的部分 Controller 来创建部分,但我发现插入新结果的唯一方法是在适配器上调用 reloadData()
。这非常糟糕,因为它会重新加载完整的项目列表(可能很长,>50 个项目)。它也无法为新项目的插入设置动画。我也尝试过执行 adapter.performUpdates(animated: true)
但没有成功,因为它只刷新我的数据源而不是数据源中的项目。
然后我尝试创建一个部分 Controller ,它将用一个单元格显示每个部分。该单元格将包含一个 IGListCollectionView
并将负责显示 items
,但我没有运气,尽管第二部分 Controller 接收到它从未显示的对象细胞。
我现在有点挣扎,不确定如何通过 IGListKit 显示三个不同的部分,这些部分使用相同类型的单元格,方法是让部分是静态的,而项目是动态的。我正在考虑创建三个 IGListCollectionView
并在它们之间设置底部/顶部约束,但我对这样做的可能性有些怀疑。
我想知道是否有人遇到过类似的问题和/或来自 IGListKit 的人是否可以给我一些提示,说明解决该问题的最佳实现是什么?
最佳答案
您应该为每个对象返回您的部分 Controller 的唯一实例。不要重复使用它们!
另一件需要注意的事情是,您使用 self
作为 diff 标识符,这意味着对象的实例标识了它的唯一性。这意味着永远不会比较两个 DataSource
对象(obj.items.count == items.count
永远不会发生)。不会破坏交易,但请注意它的行为方式。
您可能还想看看 IGListBindingSectionController
,它采用您的原始模型并将其分解为驱动该部分中每个单元格的 View 模型。
拉取请求中的更多详细信息和示例。请注意,如果您使用的是 CocoaPods,则需要使用 master。
关于ios - 具有部分和多个项目的 IGListKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42700448/
使用 IGListkit 并且对抓取数据的职责有点困惑。 虚拟示例 - 假设我正在处理车辆类别,我想让一个部分 Controller 基本上处理某个类别的汽车品牌。 我的 View Controlle
我正在尝试使用 IGListKit 实现 Collection View 。它可以有一个或三个部分。数据源是实时填充的,因此需要在有新数据可用时刷新内容。 为此,我创建了一个符合 IGListDiff
我正在尝试在 iOS 中使用 IGListKit ( Link ) 来呈现自定义 Collection View 和 TableView ,其中我在部分 Controller 中有一个水平 Scrol
我正在构建一个严重依赖 Collection View 的应用程序,因此我决定使用 IGListKit。这是我必须做的: 这是我所拥有的: ...而且它没有朝任何方向移动! 这是我的代码: impor
我正在尝试滚动到使用 IGListKit 实现的 UICollectionView 的底部。我这样做的方法: func scrollToBottom(animated: Bool = true) {
我有一个部分 Controller “mySectionController”里面有3个不同的细胞 一个 B C 我只想在单元格 B 和 C 之间应用 .minimumLineSpacing 一个 B
所以我有这个模型 class Event: NSObject { var _eventName: String! var _venueName : String! var _e
我正在使用 IGListStackedSectionController,我想知道如何将多个对象传递给任何给定的 child 。 我有这样一个场景: let sectionController = I
我无法使用 didHighlightItem 和 didUnhighlightItem 函数在单击单元格时正确设置动画,因为我无法访问单元格的节号。我想知道我是否错误地解决了问题,或者是否有一种方法可
我正在尝试以这种方式创建提要布局 [-------2/3-------][---1/3---] /* 2 items - 2 thirds and 1 third */ [---1/3---][---
如何在 View 模型中有值时添加单元格,而在没有值时不添加单元格?我的意思是,我正在使用 ListBindingSectionController,并且对于每种单元格类型(图像、标题等),我都有单独
我找不到使用 IGListKit 3.1.1 来管理水平滚动 UICollectionView 上项目之间间距的方法。 我尝试了不同的方法... 使用UICollectionViewFlowLayou
我需要更改 Collection View (UICollectionView)的frame和顶部内容插图(contentInset.top)。顶部插图和框架的更改取决于 super View 的边界
IGListKit 库链接:https://github.com/Instagram/IGListKit 我正在使用 IGListKit 制作不同的截面单元格。我成功地完成了这项任务,但我无法使用 i
我正在使用 IGListKit 库(IGListKit)。我想创建一个两列的 Collection View 列表,如下所示。我已经阅读了 IGListKit 手册,但我无法理解如何实现这一目标。 我
我是一名优秀的程序员,十分优秀!