gpt4 book ai didi

swift - 自动删除 UITableView 中的行 : Swift3

转载 作者:行者123 更新时间:2023-11-28 15:23:01 25 4
gpt4 key购买 nike

我有一个 UITableView,其中包含多行帖子,这些帖子根据它们进入我的数据库的时间进行了时间戳记。我想让每个单元格的帖子(行)在经过一定时间后自动删除。目前这就是我为实现这个目标所做的:

func deletePost(timer: Timer) {
for post in posts {
let startTime = Date(timeIntervalSince1970: TimeInterval(post.time))
let date = Date()
let endTime = startTime + 25
let call = Calendar.current


let componentsCurrent = call.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date)
var components = DateComponents()

components.hour = componentsCurrent.hour
components.minute = componentsCurrent.minute
components.second = componentsCurrent.second
components.year = componentsCurrent.year
components.month = componentsCurrent.month
components.day = componentsCurrent.day

let currentTime = call.date(from: components)!
print(currentTime)
print(" 2" , endTime)

if currentTime.timeIntervalSince1970 == endTime.timeIntervalSince1970 {
timer.invalidate()
print("ENDDDDD")
posts.removeLast()
tableView.reloadData()
}
}
}

我看到的问题是当前日期只记录一次日期但不会继续更新。我查看了有关计时器的其他帖子,并且我已经实现了它们,但是它在这种情况下不起作用。我假设一旦我能让这些变量等于其他代码就会很简单。

最佳答案

cellForRowAt 不是任何此类逻辑的地方。它的唯一目的是提供请求的单元格。就这样。

你想要的是设置一个计时器,比如每分钟一次(或其他一些合适的时间跨度)。当计时器关闭时,扫描您的数据源以查找应删除的行。从数据源中删除适当的值,并使用 deleteRows 相应地更新 TableView ,传入与删除的条目相对应的 IndexPath 数组。

关于swift - 自动删除 UITableView 中的行 : Swift3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45667707/

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