我有一个简单的表格单元格,其中一些名称按英文字母顺序排列。 我设法用其他语言本地化,一切正常。 问题是:有一种方法或命令可以按字母顺序将本地化名称放在其他语言中吗?
import UIKit
var animals = [“A1”, “A2”, “A3”, “A4”, “A5”];
class TableViewController: UITableViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return animals.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCellController;
cell.textLabel?.font = UIFont(name: "Futura-Bold", size: 18);
cell.textLabel?.textColor = UIColor.black;
cell.textLabel?.text = NSLocalizedString(animals[indexPath.row], comment: "");
cell.smallBird.image = UIImage(named: animals[indexPath.row] + ".png");
return cell
}
}
可本地化的字符串
/* Animals (EN) */
“A1" = “Cat”;
“A2" = “Dog”;
“A3" = “Owl”;
“A4" = “Leon”;
“A5" = “Tiger”;
答案 0 :(得分:2)
您目前是通过按键订购的,而不是价值。
由于您需要图像的键和标签的值,并且您希望按值对行进行排序,因此您需要的不仅仅是键数组。
以下内容创建了一组按键和本地化名称的元组,按本地化名称排序。
let animals = ["A1", "A2", "A3", "A4", "A5"].map { ($0, NSLocalizedString($0, comment: "")) }.sorted { $0.1 < $1.1 }
然后更新cellForRowAt
:
cell.textLabel?.text = animals[indexPath.row].1
cell.smallBird.image = UIImage(named: animals[indexPath.row].0)
您无需添加&#34; .png&#34;使用UIImage(named:)
时。