如何使用UITableview Sections的第一个字母而不是整个部分标签?

时间:2016-12-22 00:17:49

标签: ios swift uitableview indexing

所以我使用下面的代码来获取为我的表视图列出的索引...但是它返回整个部分标题,这不是我想要的。我希望能够只返回第一封信,让人们快速到达我需要的表格部分。我不确定如何实现这一点。

由于

Index is using full names..

func sectionIndexTitles(for tableView: UITableView) -> [String]? {
    return keys
}

1 个答案:

答案 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
    }

从上方开始,您可以将排序后的密钥作为第一个字符,也可以不重复。