Я использую 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 и «days» в размере шрифта 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];
На этот раз строка с атрибутом применяет атрибут к полному тексту. Я получаю атрибутивную строку со шрифтом «2 \ ndays», размер шрифта 8.
Попробуйте приведенный ниже код, он работает нормально: -
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 для разрешения любого количества строк