【问题标题】:how to get the cell at index path.item - 1 in collection view如何在集合视图中获取索引 path.item - 1 处的单元格
【发布时间】:2018-03-04 10:01:46
【问题描述】:

如果在索引 path.item 的单元格中满足某些条件,我想访问我的集合视图中的前一个单元格 (index path.item - 1) 以更改其中的一些设置

到目前为止,我已经尝试过:

        let previousCell = collectionView.cellForItem(at: indexPath - 1)

但它不起作用,因为 - 1 它从索引路径向下转换为整数值。

我如何获得这个单元格?

【问题讨论】:

    标签: ios swift3 uicollectionview uicollectionviewcell


    【解决方案1】:

    “上一个单元格”是什么意思?你的意思是同一部分但上一行?然后构造一个row小于这一行的索引路径。

    但是,这个问题本身似乎表明了对表视图如何工作的完全误解。您根本不需要“访问”任何单元格。更新您的 模型 并重新加载表格(或相关单元格)。

    【讨论】:

    • 感谢您的回答。我正在创建一个聊天应用程序。如果有人连续写三条消息。我只想在第三条消息旁边显示他的个人资料图片,类似于 facebook messanger 中的内容。这是我如何解决这个问题的第一个想法,因为现在每条消息旁边都会显示个人资料图片
    • 如果你只是来仇恨,请不要回答这些问题或以更积极的方式。
    • 没有人“讨厌”。正如马特所说,您的问题表明您误解了如何使用表格视图。 iOS 使用 MVC 设计模式,其中视图对象显示来自模型对象的数据。如果要更改位于不同 indexPath 的某些数据,则需要更改该位置的数据 MODEL,然后告诉单元格进行更新。
    【解决方案2】:

    请检查:

    let previousCell = collectionView.cellForItem(at: IndexPath(row: indexPath.row-1, section: indexPath.section))
    

    获取带有标识符的单元格:

    let prevIndexPath = IndexPath(row: indexPath.row-1, section: indexPath.section)
    let previousCell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: prevIndexPath)
    

    【讨论】:

    • 您好,感谢您提供富有成效的回答。它确实有效,但只是返回一个 uicollectionviewcell。是否可以使用特定标识符获取此单元格?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    相关资源
    最近更新 更多