所以我使用下面的代码来获取为我的表视图列出的索引...但是它返回整个部分标题,这不是我想要的。我希望能够只返回第一封信,让人们快速到达我需要的表格部分。我不确定如何实现这一点。
由于
func sectionIndexTitles(for tableView: UITableView) -> [String]? {
return keys
}
答案 0 :(得分:0)
就像你的钥匙一样,
let keys = ["Stack","Swift","iOS","Xcode"];
现在,互相制作array of String
,就像
func sectionIndexTitles(for tableView: UITableView) -> [String]? {
var letter = [String]()
for key in keys {
letter.append("\(key.characters.first!)")
}
return letter
}
你必须做这件事,bcz,你必须要回归
[String]
不[Character]
确保您的密钥没有相同的第一个字符,如果是这样,
var letters = [Character]()
letters = letters.sorted()
letters = letters.reduce([], { (list, name) -> [Character] in
if !list.contains(name) {
return list + [name]
}
return list
})
func sectionIndexTitles(for tableView: UITableView) -> [String]? {
var letter = [String]()
for i in 0..<(letters.count){
letter.append("\(letters[i])")
}
return letter
}
从上方开始,您可以将排序后的密钥作为第一个字符,也可以不重复。