Подсчитайте, сколько символов может поместиться в одной строке UILabel.

Я пытаюсь остановить перенос текста, когда он не помещается в строку многострочной (numberOfLines = 0) метки, но для этого мне нужно знать, сколько символов может поместиться в строке метки, чтобы я мог вырезать от остальных и просто используйте "\n", чтобы добавить следующую строку к следующей строке. Как мне узнать, сколько символов может поместиться в каждой строке с моим шрифтом, размером и размером этикетки (кстати, Courier 17.0 моноширинный). Также размер метки может быть динамическим, поскольку классы размера/размера экрана могут меняться, поэтому это необходимо.

Пример того, что я хочу сделать и почему мне нужно знать, сколько символов помещается в строку:

var lineOne = "Too long"
var lineTwo = "Also too long"
myLabel.text = lineOne + "\n" + lineTwo
// Then I would calculate how many characters can fit on a line and alter the two strings accordingly

Вывод метки (представьте, что ограничение на количество символов метки равно 3):

Too
Als

Я только что понял, что мне нужно уметь вычислять еще одну вещь: сколько строк может поместиться в метке (высоте), если numberOfLines = 0.


person Alex Bent    schedule 07.09.2016    source источник


Ответы (1)


Я не думаю, что вам нужно делать их программно. Для этого выберите свою метку и в инспекторе атрибутов измените Line Break на Character Wrap. Затем измените Lines на максимальное количество строк, которое вы хотите разрешить.

И вы можете добавить ограничения по высоте и ширине соответственно. Затем используйте <labelOutlet>.sizeToFit();

person rohit n    schedule 08.09.2016
comment
Это не решает проблему знания того, где обрезать каждую строку, чтобы она заполнила строку. Потому что с помощью этого метода, если я не добавлю \n, строки слипаются и все равно переносятся - person Alex Bent; 08.09.2016