Редактировать: Очевидно, NSAttributedString
сделает это на iOS 6 и более поздних версиях. Вместо использования NSString
для установки текста надписи, создайте NSAttributedString
, установите для него атрибуты, а затем установите его как .attributedText
на надписи. Код, который вы хотите, будет примерно таким:
NSMutableAttributedString* attrString = [[NSMutableAttributedString alloc] initWithString:@"Sample text"];
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
[style setLineSpacing:24];
[attrString addAttribute:NSParagraphStyleAttributeName
value:style
range:NSMakeRange(0, strLength)];
uiLabel.attributedText = attrString;
Старый атрибут NSAttributedString attribute.StringWithString делал то же самое, но теперь , что устарело.
По историческим причинам, вот мой первоначальный ответ:
Краткий ответ: Вы не можете. Чтобы изменить расстояние между строками текста, вам нужно будет создать подкласс UILabel
и свернуть свой собственный drawTextInRect
, создать несколько меток или использовать другой шрифт (возможно, отредактированный для определенной высоты строки, см. Ответ Филиппа).
Длинный ответ: В мире печати и Интернета пространство между строками текста известно как «ведущий» (рифмуется с «заголовком» и происходит от свинцового металла, используемого десятилетия назад). Leading - это свойство только для чтения UIFont
, которое устарело в 4.0 и заменено на lineHeight
. Насколько я знаю, нет способа создать шрифт с определенным набором параметров, таких как lineHeight
; вы получаете системные шрифты и любые пользовательские шрифты, которые вы добавляете, но не можете настроить их после установки.
В UILabel
также отсутствует параметр интервала.
Я не особенно доволен поведением UILabel
как есть, поэтому я предлагаю написать свой собственный подкласс или использовать стороннюю библиотеку. Это сделает поведение независимым от вашего выбора шрифта и станет наиболее подходящим решением.
Хотелось бы, чтобы был более гибким в UILabel
, и я был бы рад оказаться неправым!