如何构建类似iPhone的“联系人”列表的桌面视图?
我的原始数据位于JSON
,已下载并打包到名为Article.swift
的Model Class对象中。 “文章”是它的要素。
article.name = rawData["A_Name_Ch"] as! String
article.name_EN = rawData["A_Name_En"] as! String
article.location = rawData["A_Location"] as! String
article.image_URLString = rawData["A_Pic01_URL"] as? String
........
........
,数据按article.sorted排序:
func downLoadLatestArticles(){
Article.downLoadItem { (articles, error) in
if let error = error {
return
}
if let articles = articles {
self.articles = articles.sorted(by: { $0.name_EN! < $1.name_EN! })
}
}
}
我们想使用article.name作为排序的关键,通过章节标题(A,B,C ..),滚动侧索引表A~Z显示关于tableview的文章信息,并引导到下一个视图单击单元格时的详细数据。
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if(searchActive) {
return filtered.count
}
return articles.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ListTableCell", for: indexPath) as! ListTableCell
var article : Article
let imageURL: URL?
if let imageURLString = article.image_URLString {
imageURL = URL (string: imageURLString)
}
else { imageURL = nil }
if let c = cell as? ListTableCell {
c.nameLabel?.text = article.name;
c.name_ENLabel?.text = article.name_EN;
c.locationLabel?.text = article.location
}
return cell
}
答案 0 :(得分:0)
准备好使用Array之后,可以使用此方法对数组元素进行排序。
articles = articles.sorted { $0.name.localizedCaseInsensitiveCompare($1.name) == ComparisonResult.orderedDescending }