Как показать пользовательское направление линии внутри UIlabel UITableViewCell с лучшей производительностью - PullRequest
0 голосов
/ 28 июня 2018

Я хочу показать текст внутри UIlabel из UITableViewCell для каждой ячейки. Внутри текста для каждой строки текста направление линии должно отображаться правильно. Так что если язык строки арабский, то это должен быть RTL, а если это английский, то это должен быть LTR. Я не хочу обнаруживать разделитель строк в cellForRow делегате, а затем создавать NSAttributedString, потому что обнаружение в cellForRow имеет низкую производительность, и у меня огромная таблица с огромными текстами. Как можно решить этот сценарий с хорошей производительностью?
Я также не знаю, как Telegram решить эту проблему, если кто-нибудь знает, скажите, пожалуйста. Любая помощь приветствуется.
Редактировать: Каждый текст, вставленный в UILabel, может иметь разные строки, которые каждая строка может иметь на своем языке. Поэтому для каждой линии мне нужно разное направление. Внутри UILabel или UITextView я просто могу задать направление для всего текста, а не для каждой строки текста.

1 Ответ

0 голосов
/ 28 июня 2018

По соображениям производительности всегда желательно предварительно обработать ваши данные в NSAttributedStrings , для RTL (строка за строкой) - и поместить их в массив для поддержки таблиц, прежде чем позвонить reloadData().

cellForRow должен обработать минимальные данные . cellForRow должен использоваться только для выбора , какие данные показывать, в зависимости от логики. Например, выбор из массива 1 или массива 2 в зависимости от состояния пользовательского интерфейса, в котором находится пользователь, например, режим поиска / режим свертывания-расширения / данные языка-языка-2 и т. Д.

Эти данные должны быть как можно больше предварительно обработаны и должны быть легко обработаны. Как только вы закончите обработку, позвоните reloadData, чтобы отобразить ее как есть.

...