gpt4 book ai didi

ios - deleteRowsAtIndexPaths 重置自定义单元格

转载 作者:行者123 更新时间:2023-11-29 01:38:32 25 4
gpt4 key购买 nike

我对 Swift 和 iOS 比较陌生,我有一个问题 - 我有一个扩展 UITableViewCell 的自定义 SwipeCell 类。这是一个可以左右滑动的单元格,每侧都有按钮。出于某种原因,如果我在用户滑动单元格时将按钮设置在单元格的框架之外,它们会出现但无法调用操作,所以我的解决方案是使单元格比实际更宽(以便按钮可以放入其中)。因为它是以这种方式完成的,所以我的单元格必须默认为左侧按钮的总宽度(假设为 100)有一个偏移量,所以它的位置是 X:-100。

这很好,单元格一切正常,但是有一个大问题 - 如果我像这样调用从 tableView 中删除任何单元格

tableView.deleteRowsAtIndexPaths([tableView.indexPathForCell(activeCell)!], withRowAnimation: .None)

tableView 然后删除该单元格,并且当前可见的所有其他单元格(不会发生在屏幕边界上方或下方的单元格)移动到 X:0 而不是停留在 X:-100,所以我假设 deleteRowsAtIndexPaths 调用了一些将可见单元格位置重置为 0,0 的函数。我目前正在使用 layoutSubviews() 设置滑动单元格位置,因为按钮的数量是动态的并且无法预先确定,但 layoutSubviews 不是发生错误的函数。

所以总结一下问题 - deleteRowsAtIndexPaths 在删除重置/重绘可见单元格的单元格后调用什么函数?

最佳答案

deleteRowsAtIndexPaths 从 tableView 中删除一行。这是由 iOS 内部处理的。来自 Apple documentation :

Deletes the rows specified by an array of index paths, with an option to animate the deletion.

这里要注意的另一个有趣的事情是,此方法不会修改您的模型(保存表格 View 单元格使用的数据以在其自身上呈现的对象)。你必须自己做。单元格已删除,但如果您调用 reloadData 而不从模型中删除行,单元格将重新出现。

关于ios - deleteRowsAtIndexPaths 重置自定义单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32698010/

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