在使用 dequeueReusableCellWithIdentifier 时保留单元格之间的单元格属性

Posted

技术标签:

【中文标题】在使用 dequeueReusableCellWithIdentifier 时保留单元格之间的单元格属性【英文标题】:Preserving cell properties between cells while using dequeueReusableCellWithIdentifier 【发布时间】:2014-10-04 20:27:53 【问题描述】:

我的应用程序是基于提要的应用程序(想想 Instagram)。实际上,它与 Instagram 非常相似——不同之处在于,它不是图片,而是带有不同对象的可滑动、分页视图(链接到演示): https://www.youtube.com/watch?v=EYTjA3Bcv_A&feature=youtu.be 可滑动功能源自此类:https://github.com/nicklockwood/SwipeView 在我的UITableViewController 课程中,我试图通过实现tableView.dequeueReusableCellWithIdentifier 来保持我的记忆效率。这造成的问题是,当您滚动并且单元格正在出队时,单元格的可重用性质会继承旧数据。 我的问题是我想保留用户在 SwipeView 中滑动到的对象,同时仍然实现 tableview.dequeueReusableCellWithIdentifier。 处理这个问题的SwipeView 的属性是currentItemIndex。这管理当前在 SwipeView 中居中的项目。当然,提要中的每个SwipeView 都应该记住自己的currentItemIndex,但是出队的单元格会从正在重用的单元格中继承旧的currentItemIndex。这可以重置:cell.swipeView.currentItemIndex = 0 在设置新(重用)单元时,但是旧单元在重用时会丢失其currentItemIndex。 原问题视频:http://youtu.be/CXTHyvF3adI(查看旧的currentItemIndex如何在SwipeView单元之间转移)currentItemIndex重用单元时重置问题的视频:http://youtu.be/VBw8Rm-s5Qk(看看SwipeView 单元格如何不记得他们被刷到了哪个项目) 有没有人知道我该如何做到这一点? 提前感谢大家!

【问题讨论】:

您需要将状态存储在单元格以外的其他位置 - 例如在数组或 NsIndexSer 中 【参考方案1】:

这就是 PrepareForReuse 方法的用途

【讨论】:

以上是关于在使用 dequeueReusableCellWithIdentifier 时保留单元格之间的单元格属性的主要内容,如果未能解决你的问题,请参考以下文章

在哪里使用 CORBA 以及在哪里使用 SNMP 进行监控?

为啥在使用 unicode 时我不能在 :before :after 内容之后使用空格

在哪里使用 callable 以及在哪里使用 Runnable Interface?

在 Observable RxSwift 中使用 'asPromise()' 可以在 PromiseKit Promise 中使用吗?

可以在 SELECT 查询中使用 IF() 但不能在 UPDATE 中使用

使用 React,在使用 react-transition-group 时,在 StrictMode 中不推荐使用 findDOMNode 作为警告