Создание indexList без разделов на tableView? - PullRequest
0 голосов
/ 17 декабря 2018

В моем табличном представлении есть один раздел, в котором строки существ отображаются в виде строк.Я пытаюсь создать индексный список, который появляется с правой стороны, который я могу настроить, и я перейду к определенной строке.Пока что я могу показать индекс, но он не переходит на конкретную строку при нажатии на букву.При нажатии «A» он вернется к первой строке, но ни один из других вариантов индекса не сработает.Есть ли обходной путь для этого?

Редактировать: пытались найти ответ, и до сих пор не можем найти способ сделать это.

   let respiratory = ["A - Patient Disposition Form","B - On Scene Physician","C - APGAR Score","D - LA Prehospital Stroke Screen","E - Pain Scales","F - Restraint Checklist","G - Abbreviations","H - Reperfusion Checklist","I - Difficult Airway","J - Burn Resources","DNR","NCCEP Airway Evaluation Form","NC MOST Form","PREMIS Preliminary Report","NC Eye Bank"]

        let indexList = ["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","AA"]

        func sectionIndexTitles(for tableView: UITableView) -> [String]? {
            return indexList;
        }
        func sectionIndexTitlesForTableView( for tableView: UITableView) -> [AnyObject]! {
            return respiratory as [AnyObject]
        }
 @IBOutlet weak var animalTableView: UITableView!




    ///Set elements in cell
    func tableView(  _ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {
        let cell = tableView.dequeueReusableCell(withIdentifier: "appendicieslist"/*Identifier*/, for: indexPath)
        cell.textLabel?.text = respiratory[indexPath.row]
        // FONT STYLE
        cell.textLabel?.textColor = UIColor.white
        cell.detailTextLabel?.font = UIFont.boldSystemFont(ofSize: 30.0)
        cell.textLabel?.textAlignment = .center
        self.animalTableView.backgroundColor = UIColor.clear
        cell.textLabel?.backgroundColor = UIColor.black

        return cell
    }



    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        return respiratory.count
    }

1 Ответ

0 голосов
/ 18 декабря 2018

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

Из UITableView документация класса:

Представление таблицы может иметь индекс, который отображается в виде столбца с правой стороны таблицы (например, от «A» до «Z»),Вы можете прикоснуться к определенной метке, чтобы перейти к целевому разделу .

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

Всегда остается возможность кодировать собственный настраиваемый индекс, который дублирует функциональность индекса UITableView для строк вместо разделов,но это может быть неэффективным или неуместным в зависимости от вашего варианта использования.

...