Как правильно выровнять текст на iOS 7
Я пытаюсь горизонтально выровнять текстовые биты с разными размерами и шрифтами.
Вот результат, который я хотел бы (сделанный с помощью scribus):
Вы можете видеть, что текст идеально выровнен по горизонтали (к пикселю).
Я попытался реализовать это с помощью базового UITextView и обосновать текст. Вот что я получил:
Вы можете видеть, что текст не выровнен по горизонтали с пикселем. Я попытался центрироваться, и это все еще не достаточно хорошо:
Если вещи не были достаточно сложными, первая и третья строка - это динамический текст... поэтому их размер изменяется.
Я посмотрел на textkit, но не нашел ничего убедительного...
Мои выводы:
- найти лучший размер шрифта для текста с учетом ширины.
- Размещайте глифы равномерно, чтобы текстовый ограничивающий прямоугольник был равен желаемой ширине.
но я понятия не имею, как это сделать. Какие-либо ведет? Спасибо!
1 ответ
Вы пробовали NSString's boundingRectWithSize:options:attributes:context:
?
CGRect rect = [string boundingRectWithSize:CGSizeMake(width, height)
options:NSStringDrawingUsesFontLeading
attributes:attributes
context:nil];
Если вы также поддерживаете iOS 6, используйте -[NSString sizeWithFont:constrainedToSize:lineBreakMode:]
CGSize textSize = [string sizeWithFont:uifont
constrainedToSize:maximumCGSize
lineBreakMode:lineBreakMode];
sizeWithFont:constrainedToSize:lineBreakMode:
Начиная с iOS 7 этот метод устарел.
Используя один из этих методов, вы можете найти самую широкую линию и сопоставить ее с другими. В вашем случае с динамическим текстом я бы рекомендовал не использовать UITextView, чтобы гарантировать правильное выравнивание текста.