Попытка создания результатов поиска в виде таблицы в формате, аналогичном тому, как Google представляет результаты поиска. Мне не нужна помощь в добавлении атрибутов. Ищите несколько советов о том, как лучше всего представить сопоставленный текст, как показано ниже в примере снимка экрана Google.
В приведенном ниже примере результатов поиска Google в качестве условий поиска используются match и found . Обратите внимание на выделенный жирным шрифтом текст, показанный в строке. Результат Google показывает часть текста для отображения контекста, который полезен для пользователя при определении релевантности. Однако расположение совпадающего текста может быть глубоко в многострочной строке:
До сих пор я успешно обращался к выходу UITextView в подклассовой ячейке табличного представления и создавал экземпляр подклассовой ячейки в override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
Назначение подклассовой ячейки:
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell2", for: indexPath) as! TableViewCustomCell2
Использование cell
Я могу сослаться на выход UITextView, который имеет доступ к функциям прокрутки, например scrollRectToVisible
или scrollRangeToVisible
. Используя последнее, я передаю параметр NSRange
, используя первый элемент массива, содержащий диапазоны каждого сопоставленного текста. Последний работает, когда я тестирую код, оставляя прокрутку включенной. Однако scrollRangeToVisible
вызывается каждый раз, когда я прокручиваю результаты поиска, что раздражает, и, в любом случае, мне нужно отключить прокрутку.
Если я попытаюсь отключить прокрутку в func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
немедленно ПОСЛЕ вызова scrollRangeToVisible
в ячейке, scrollRangeToVisible
не будет работать.
В жизненном цикле View Controller должно быть место для выполнения scrollRangeToVisible
, после чего я могу отключить прокрутку. Есть мысли о том, как лучше всего это сделать? Есть ли делегат / протокол для доступа к необходимой последовательности событий в цикле? Или я лаю не на том дереве с помощью UITextView?
В качестве альтернативы, кто-нибудь может указать мне пример github или stackoverflow, который рассматривает аналогичную проблему?