Показать сопоставленный текст в результатах поиска в табличном представлении - PullRequest
0 голосов
/ 09 мая 2019

Попытка создания результатов поиска в виде таблицы в формате, аналогичном тому, как Google представляет результаты поиска. Мне не нужна помощь в добавлении атрибутов. Ищите несколько советов о том, как лучше всего представить сопоставленный текст, как показано ниже в примере снимка экрана Google.

В приведенном ниже примере результатов поиска Google в качестве условий поиска используются match и found . Обратите внимание на выделенный жирным шрифтом текст, показанный в строке. Результат Google показывает часть текста для отображения контекста, который полезен для пользователя при определении релевантности. Однако расположение совпадающего текста может быть глубоко в многострочной строке:

See sample image below До сих пор я успешно обращался к выходу 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, который рассматривает аналогичную проблему?

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