Подтвердить что ты не робот

Добавление 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.

4b9b3361

Ответ 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