Пример NSAttributedString с двумя разными размерами шрифта?
NSAttributedString просто действительно непроницаем для меня.
Я хочу установить UILabel чтобы иметь текст разных размеров, и я собираю NSAttributedString это путь, но я не могу ничего получить с документацией по этому вопросу.
Я хотел бы, чтобы кто-то мог помочь мне с конкретным примером.
например, скажем, текст, который я хотел:
(in small letters:) "Presenting The Great..."
(in huge letters:) "HULK HOGAN!"
может кто-нибудь показать мне, как это сделать? Или даже, ссылка, которая проста и проста, где я мог бы учиться самому? Клянусь, я пытался понять это через документацию и даже через другие примеры переполнения стека, и я просто не получаю его.
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