Ios 如何在tableView中对单元格进行排序?
如何在tableView中对单元格进行排序Ios 如何在tableView中对单元格进行排序?,ios,swift,uitableview,sorting,uilabel,Ios,Swift,Uitableview,Sorting,Uilabel,如何在tableView中对单元格进行排序 我有结构和数组: struct Converter { let title: String let kf: Double } let converterAtmo = [ Converter(title: "Атмосферы", kf: 1), Converter(title: "Бары", kf: 365.2422), Converter(title
我有结构和数组:
struct Converter {
let title: String
let kf: Double
}
let converterAtmo = [
Converter(title: "Атмосферы", kf: 1),
Converter(title: "Бары", kf: 365.2422),
Converter(title: "Мм.рт.ст.", kf: 11.999998),
Converter(title: "Паскали", kf: 525948.77),
Converter(title: "Фунт./кв.дюйм", kf: 52.177457)]
在
CellAtRow
func中:
let cell1 = tableView.dequeueReusableCell(withIdentifier: "resultCell") as! resultTableViewCell
let item = converterAtmo[indexPath.row]
cell1.nameResult.text = item.title
cell1.labelResult.text = String(item.kf * atmosfera)
return cell1
最后,
@IBAction
:
@IBAction func sortAlphabet(_ sender: Any) {
let itemSort = converterAtmo
itemSort.sorted { $0.title < $1.title }
self.tableView2.reloadData()
}
@IBAction func sortAlphabet(uu发送方:任意){
让itemSort=converterAtmo
itemSort.sorted{$0.title<$1.title}
self.tableView2.reloadData()
}
但它不起作用
我的问题是什么?首先,您必须将
converterAtmo
声明为var
,而不是let
,以便修改它
然后替换:
itemSort.sorted { $0.title < $1.title }
首先,您必须将
converterAtmo
声明为var
,而不是let
,以便修改它
然后替换:
itemSort.sorted { $0.title < $1.title }
在:
let itemSort=converterAtmo
itemSort.sorted{$0.title<$1.title}
实际上,您并没有对数组进行排序。您正在“itemSort”中复制它,而没有对它执行任何操作。在:
let itemSort=converterAtmo
itemSort.sorted{$0.title<$1.title}
实际上,您并没有对数组进行排序。您正在“itemSort”中复制它,而没有对它进行任何操作。这在代码之外是不容易复制的。这在代码之外是不容易复制的。
@IBAction func sortAlphabet(_ sender: Any) {
// `sort` method will sort the converterAtmo (`sorted` method leaves the original
// array untouched and returns a sorted copy)
self.converterAtmo.sort { $0.title < $1.title }
self.tableView2.reloadData()
}
let itemSort = converterAtmo
itemSort.sorted { $0.title < $1.title }