我只想创建带有索引部分的自定义concat列表(索引列表必须与默认联系人列表相同)。 例如,如果我创建任何不带名称的联系人,则带有#索引,如果任何联系人以数字开头,则它也带有#index。我正在使用以下代码,但没有运气。
CStr
答案 0 :(得分:0)
解决方案, 我点击了此链接-:https://developer.apple.com/documentation/uikit/uilocalizedindexedcollation
class ObjectTableViewController: UITableViewController {
let collation = UILocalizedIndexedCollation.currentCollation()
var sections: [[AnyObject]] = []
var objects: [AnyObject] = [] {
didSet {
let selector: Selector = "localizedTitle"
sections = Array(count: collation.sectionTitles.count, repeatedValue: [])
let sortedObjects = collation.sortedArrayFromArray(objects, collationStringSelector: selector)
for object in sortedObjects {
let sectionNumber = collation.sectionForObject(object, collationStringSelector: selector)
sections[sectionNumber].append(object)
}
self.tableView.reloadData()
}
}
// MARK: UITableViewDelegate
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String {
return collation.sectionTitles[section]
}
override func sectionIndexTitlesForTableView(tableView: UITableView) -> [String] {
return collation.sectionIndexTitles
}
override func tableView(tableView: UITableView, sectionForSectionIndexTitle title: String, atIndex index: Int) -> Int {
return collation.sectionForSectionIndexTitleAtIndex(index)
}
}
答案 1 :(得分:0)
Swift 5
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return UILocalizedIndexedCollation.current().sectionTitles[section]
}
func sectionIndexTitles(for tableView: UITableView) -> [String]? {
return UILocalizedIndexedCollation.current().sectionTitles
}
func tableView(_ tableView: UITableView, sectionForSectionIndexTitle title: String, at index: Int) -> Int {
return UILocalizedIndexedCollation.current().section(forSectionIndexTitle: index)
}