gpt4 book ai didi

ios - 点击段时停止 cellForRowAtIndexPath

转载 作者:行者123 更新时间:2023-11-28 12:58:18 25 4
gpt4 key购买 nike

我下面有一个segmentedControl 和一个tableView

SegmentedControl 有两个片段:“新闻”和“事件”。

新闻和事件在 func getJson(type: Int) 中下载到 var news = [News]()

对于新闻 - news.type = 1,对于事件 news.type = 2

我的 getJson 方法是:

func getJson(type: Int) {
self.news = [] // empty news array
if jsonData["type"] == type {
// save needed news to array
self.news.append(News(id: jid, title: jtitle, subtitle: jsubtitle, urlstring: jurlstring, image: jimage!))
}
}

所以问题是当我滚动并 swift 点击第二段时,应用程序崩溃了:

enter image description here

因为在 getJson 中的 self.news = []self.news.append 之间,这里是 cellForRowAtIndexPath.

我的问题是如何在点击段时停止 cellForRowAtIndexPath?谢谢。

最佳答案

如果您从网络加载数据的代码与驱动您的 tableview 的数组混淆,那么您将遇到问题......而您就是。

典型的方法是在您的网络加载代码中将数据加载到一个临时数组中,然后在加载完成并在在你的 tableview 上调用 reloadData

您可能还需要考虑加载数据时的用户体验。我可能会做这样的事情:

  1. 当段发生变化时,隐藏 tableview 并取消隐藏以 tableview 位置为中心的 UIActivityIndi​​catorView
  2. 开始从网络加载到一个临时数组
  3. 加载完成后将其分配给 self.news
  4. 重新加载表格数据
  5. 隐藏 UIActivityView 并取消隐藏 tableview

关于ios - 点击段时停止 cellForRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34449284/

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