UITableview Разделы Индексация Нажмите Событие - PullRequest
1 голос
/ 03 июня 2019

Есть ли способ получить событие клика при индексации раздела табличного представления?

Я много исследовал, но не получил подходящего предложения. Кто-нибудь знает, как получить действие нажатия кнопки индексации?

Я хочу получить событие клика по этой отмеченной синим цветом индексации на изображении ниже.

enter image description here

Ответы [ 2 ]

3 голосов
/ 03 июня 2019

Вы можете использовать метод tableView (_: sectionForSectionIndexTitle: at:) , чтобы возвращать соответствующий индекс раздела при нажатии на заголовок индекса.

let sectionArr = ["a","a","b","c","d","d"]
func numberOfSections(in tableView: UITableView) -> Int {
    return sectionArr.count
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    return sectionArr[section]
}
func sectionIndexTitles(for tableView: UITableView) -> [String]? {
    return Array(Set(sectionArr))//["a","b","c","d"]
}
func tableView(_ tableView: UITableView, sectionForSectionIndexTitle title: String, at index: Int) -> Int {
    if let index = sectionArr.firstIndex(where: { $0 == title }) {
        return index//0 for a, 2 for b, 3 for c, 4 for d
    }
    return 0
}
0 голосов
/ 03 июня 2019

Вы можете использовать пользовательское представление в качестве индексного представления UITableView, как показано в ссылке ниже:

Пользовательский индекс раздела UITableView

Это в Objective-c, но я думаю, что это отличный справочник, поскольку в нем есть события touchesBegan, touchesMoved, touchesEnded и touchesCancelled, и вы можете настроить взаимодействие с ними так, как вам бы хотелось , Также было бы очень легко добавить настраиваемое поведение в это пользовательское представление индексации.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...