sectionForSectionIndexTitle和sectionIndexTitlesForTableView未在swift 3中调用

时间:2017-06-09 12:07:13

标签: ios iphone swift swift3

我在项目中使用过联系人Book,所有数据显示为sectionWise.Tableview部分索引不显示该实现sectionForSectionIndexTitle和sectionIndexTitlesForTableView但不调用。

为此,我使用了以下代码:

let arrIndexSection = ["A","B","C","D", "E", "F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
func tableView(_ tableView: UITableView, sectionForSectionIndexTitle title: String, at index: Int) -> Int
{

    return ([UITableViewIndexSearch] + UILocalizedIndexedCollation.current().sectionIndexTitles as NSArray).index(of: title) - 1
}
func sectionIndexTitlesForTableView(tableView: UITableView) -> [AnyObject]!
{
    return arrIndexSection as [AnyObject]
}

任何人都有上述解决方案的想法或解决方案,请帮助我。

感谢。

2 个答案:

答案 0 :(得分:6)

更改以下给出的部分方法

func numberOfSections(in tableView: UITableView) -> Int {
    return arrIndexSection.count
}

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

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 44
}

检查以下几点

  • 检查与您的tableview相关联的tableView IBOutlet。
  • 确保您的tableview数据源和委托与相应的类
  • 相关联
  • 如果您想要多个部分,请确保在代码中为tableView数据源方法提供了部分编号。

答案 1 :(得分:0)

确保TableView的代理和数据源 并使用BreakPoint进行调试