Добавление NSAttributedString с разрывом строки возвращает атрибутную строку с неправильным форматом
Я использую NSMutableAttributedString
и NSAttributedString
для отображения текста ярлыка в двух разных размерах шрифта. Мой подход:
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"days" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
Который возвращает мне строку Attributed с "2" в размер шрифта 12 и "дни" в размере шрифта 8.
Однако другой сценарий состоит в том, чтобы добавить разрыв строки после 2. Я использую следующий код:
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"\ndays" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
В этот раз атрибут string применяется атрибут в полном тексте. Я получил строку с атрибутом "2\ndays" в размере шрифта 8.
Ответы
Ответ 1
Попробуйте этот ниже код, он отлично работает: -
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"\ndays" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
self.lbl.numberOfLines = 0;
[self.lbl setAttributedText:muAtrStr];
Примечание. - Также поместите numberOfLines в 0 для разрешения любого количества строк
Ответ 2
Это работает в Swift:
let attributedText = NSAttributedString(string: "Happy \nDays")
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping
label.attributedText = attributedText