Как совместить NSLineBreakByCharWrapping и NSLineBreakByTruncatingTail?

Мне нужно объединить NSLineBreakByCharWrapping и NSLineBreakByTruncatingTail.

Вот условие, содержимое UILabel состоит из нескольких строк. В середине строки есть идентификатор числа, например «... Вы купили немного кокоса, идентификатор 12345678901234567890, наслаждайтесь ...». Если я использую NSLineBreakByWordWrapping, идентификатор числа заполнит строку. Не очень хорошо .

Я прочитал iOS - объединить NSLineBreakByWordWrapping и NSLineBreakByTruncatingTail, не подходит.

Вычислите размер и замените последние слова на ... . Длина предложения разная, точной формулы я не получил.

Так как же совместить NSLineBreakByCharWrapping и NSLineBreakByTruncatingTail?


person black_pearl    schedule 26.07.2018    source источник
comment
В основном вы хотите показать полную строку в нескольких строках. И id находится... пока показывается. Верно?   -  person bestiosdeveloper    schedule 26.07.2018
comment
Я хочу показать полную строку в несколько строк. И идентификатор NSLineBreakByCharWrapping. Конец строки truncatesLastVisibleLine. Конец '...' , идентификатор не '...'   -  person black_pearl    schedule 26.07.2018
comment
Итак, вам нужно рассчитать высоту текста для UILabel. Попробуйте использовать метод sizeCount из github.com/kumarpramod017/Extensions/blob/master/ это расширение шрифта String: передать шрифт UILabel. boundignSize: Передайте ширину UILabel и высоту около 10000, потому что вам нужно рассчитать высоту UILabel. И дайте мне знать, если вы застряли, чтобы достичь этого.   -  person bestiosdeveloper    schedule 26.07.2018
comment
Это, вероятно, потребует пользовательской логики, в которой вы вычисляете размер строки, удаляя последний символ итеративно, пока размер не будет в пределах вашего текстового поля; затем добавьте ... и продолжайте удалять буквы перед ..., пока это тоже не подойдет; все время используя wordWrapping все время.   -  person Albert Renshaw    schedule 26.07.2018
comment
Да, я видел решение в S.O. Это работает в теории. При работе с разными размерами iPhone в конце обычно остается пустое место перед '...' . @Альберт Реншоу   -  person black_pearl    schedule 26.07.2018