gpt4 book ai didi

ios - 具有多个部分的表格,具体取决于切换

转载 作者:行者123 更新时间:2023-11-30 13:29:33 24 4
gpt4 key购买 nike

我正在创建一个表格 View ,该 View 正在填充 plist 中的值。

表中还有一个收藏夹部分,该部分将从同一个 plist 中填充,具体取决于 plist 中的 bool 值是 true 还是 false。

我遇到的问题是每当刷新 TableView 时,单元格就会更改为数组中的不同值。

这是我的手机代码:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

//Define cell in view controller
let cell = tableView.dequeueReusableCellWithIdentifier("tableCell", forIndexPath: indexPath) as UITableViewCell

//Get information from routeArrayionary
if let inforouteArray = self.routeArray![indexPath.row] as? NSDictionary,
let nameString = inforouteArray["name"], let nameCode = inforouteArray["code"], let isFav = inforouteArray["isFavorite"] {
if (indexPath.section == 0) {
if (isFav as! Bool == true) {
cell.textLabel?.text = "\(nameString) (\(nameCode))"
}
} else {
cell.textLabel?.text = "\(nameString) (\(nameCode))"

}
}
return cell

}

移动行:

if (sourceIndexPath != destinationIndexPath) {
if (destinationIndexPath.section == 0) {
self.routeArray![sourceIndexPath.row].setValue(true, forKey: "isFavorite")
} else {
self.routeArray![sourceIndexPath.row].setValue(false, forKey: "isFavorite")

}
if(self.routeArray!.writeToFile(self.path!, atomically: true) == true) {
NSLog("Successfully saved favorites")
}

self.tableView.reloadData()
}

以及我如何计算一个部分中的行数:

if (section == 0) {
var i: Int = 0
for route in routeArray! {
if (route["isFavorite"] as! Bool == true) {
i += 1
}
}

return i

} else {
return numRows!
}

RouteArray结构:

{
code = **;
color = 0000FF;
isFavorite = 0;
name = “**”;
routeId = 55;
weight = 0;
},
{
code = **;
color = DDDDDD;
isFavorite = 0;
name = “**”;
routeId = 57;
weight = 1;
}

我真的不太确定从这里该去哪里。

最佳答案

基本上,在收藏夹部分,您的索引是错误的。假设您已将项目 0、5 和 7 添加到收藏夹部分。 iOS 将使用 indexPath.section == 0 和 indexPath.row = 0, 1, 2 调用 cellForRowAtIndexPath。您需要将 0, 1, 2 映射到 0, 5, 7 - 但您不需要这样做。对于第 1 行和第 2 行,“if (isFav as!Bool == true)”不会为 true,没有 else 分支,因此您无需设置单元格文本。由于单元格被重复使用,单元格文本将保留上次使用时的内容。

您能做的最好的事情可能就是创建第二个数组“favoriteRouteArray”,该数组会过滤到收藏夹条目,并将其用于收藏夹部分。

关于ios - 具有多个部分的表格,具体取决于切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36732333/

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