Я пытаюсь создать многострочный UILabel с NSMutableAttributedString. Это прекрасно работает, когда я присвоить атрибут к полной строке так:Как визуализировать многострочный UILabel с NSMutableAttributedString
UILabel *contentLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0,200,100)];
[contentLabel setLineBreakMode:NSLineBreakByWordWrapping];
[contentLabel setNumberOfLines:0];
[contentLabel setFont:[UIFont systemFontOfSize:13];
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"hello I am a long sentence that should break over multiple lines"];
[string addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:13] range:NSMakeRange(0, [string length])];
contentLabel.attributedText = string;
Но я то, что мне нужно применить ряд атрибутов для различных поддиапазонов в NSAttributedString (полужирные некоторые слова).
UILabel *contentLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0,200,100)];
[contentLabel setLineBreakMode:NSLineBreakByWordWrapping];
[contentLabel setNumberOfLines:0];
[contentLabel setFont:[UIFont systemFontOfSize:13];
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"hello I am a long sentence that should break over multiple lines"];
[string addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:13] range:NSMakeRange(3, 5)];
contentLabel.attributedText = string;
Что я нахожу, так это то, что если я это сделаю, текст больше не будет отображаться на нескольких строках на этикетке. Он отображается как одна строка, центрированная по вертикали в рамке метки.
Есть ли что-то, что мне не хватает здесь?
Вы сделали этикетку достаточно высокой для второй линии? –
Я не могу воспроизвести это на 6.1. Я отмечаю, что ваш код немного некорректен (отсутствует) в строке setFont: и вместо «contentLabel» вы используете «метку» в одном месте). Вы уверены, что это фактический код? –
@ Кевин Баллард: Да, этикетка достаточно высока. – adriaan