Пример NSAttributedString с двумя разными размерами шрифта?



NSAttributedString просто действительно непроницаем для меня.



Я хочу установить UILabel чтобы иметь текст разных размеров, и я собираю NSAttributedString это путь, но я не могу ничего получить с документацией по этому вопросу.



Я хотел бы, чтобы кто-то мог помочь мне с конкретным примером.



например, скажем, текст, который я хотел:



(in small letters:) "Presenting The Great..."
(in huge letters:) "HULK HOGAN!"


может кто-нибудь показать мне, как это сделать? Или даже, ссылка, которая проста и проста, где я мог бы учиться самому? Клянусь, я пытался понять это через документацию и даже через другие примеры переполнения стека, и я просто не получаю его.

473   4  

4 ответов:

вы бы сделали что-то вроде этого...

NSMutableAttributedString *hogan = [[NSMutableAttributedString alloc] initWithString:@"Presenting the great... Hulk Hogan!"];
[hogan addAttribute:NSFontAttributeName
              value:[UIFont systemFontOfSize:20.0]
              range:NSMakeRange(24, 11)];

это установит последние два слова в 20-точечном тексте; остальная часть строки будет использовать значение по умолчанию (которое, я считаю, составляет 12 пунктов). То, что может сбить с толку о настройке размера текста является то, что вы должны установить шрифт и размер в то же время-каждый UIFont объект инкапсулирует оба этих свойства.

Swift 3 Решение

кроме того, вы можете использовать append функция вместо указания индексов в ObjC или Swift:

let attrString = NSMutableAttributedString(string: "Presenting The Great...",
                                           attributes: [ NSFontAttributeName: UIFont.systemFont(ofSize: 20) ])

attrString.append(NSMutableAttributedString(string: "HULK HOGAN!",
                                            attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 40) ]))

Swift 4 Решение:

let attrString = NSMutableAttributedString(string: "Presenting The Great...",
                                       attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 18)]));

attrString.append(NSMutableAttributedString(string: "HULK HOGAN!",
                                        attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 36)]));

Если вы хотите сделать это простым способом, есть git repo под названием OHAttributedLabel что я использую, что предоставляет категорию на NSAttributedString. Это позволяет вам делать такие вещи, как:

NSMutableAttributedString *mystring = [[NSMutableAttributedString alloc] initWithString:@"My String"];
[mystring setTextColor:[UIColor colorWithRGB:78 green:111 blue:32 alpha:1]];
mystring.font = [UIFont systemFontOfSize:14];

Если вы не хотите использовать сторонний lib, проверьте этой ссылке для достойного учебника о том, как начать работу с приписанными строками.

Comments

    Ничего не найдено.