#iphone #ios #cocoa-touch #fonts #uibutton
#iPhone #iOS #cocoa-touch #шрифты #uibutton
Вопрос:
Есть ли способ отобразить в текстовой метке UILabel «ЛЮБОЙ значок текст», предполагая, что значок является символом Apple или символом шрифта Zapf Dingbats?
Таким образом, локализация текста автоматически центрировала бы все это и регулировала положение значка в надписи в зависимости от его размера.
Что-то вроде этого: http://www.chocolatechip-ui.com/screenshots/buttons.png
У меня было бы изображение для фона и наложение на него значка текстовой метки.
Я НЕ хочу помещать изображение в кнопку.
РЕДАКТИРОВАТЬ Я ограничиваю вопрос только для UILabel, поскольку запрос того же самого для работы с UIButton генерирует множество ответов вне контекста.
Ответ №1:
Если вы установите для стиля UIButton значение «Пользовательский» и установите изображение значка в качестве фона (а не изображения), вы сможете увидеть заголовок при его установке.
Комментарии:
1. Вы можете выровнять текст справа от значка в разделе выравнивание инспектора атрибутов элемента управления.
2. Вопрос не в этом. Я не хочу ничего выравнивать вручную.
3. Здравствуйте, я допустил ошибку. Не могли бы вы отредактировать свой ответ, чтобы «разблокировать» его, пожалуйста?
Ответ №2:
Взгляните на этот проект swift: https://github.com/anatoliyv/SMIconLabel Если бы вы могли поместить свой символ в UIImage, он должен делать именно то, что вы хотите.
Ответ №3:
вы можете сделать это с помощью attributedText (iOS> = 7)
NSTextAttachment *attachment = [[NSTextAttachment alloc] init];
attachment.image = [UIImage imageNamed:@"icon.png"];
NSAttributedString *attachmentString = [NSAttributedString attributedStringWithAttachment:attachment];
NSMutableAttributedString *myString= [[NSMutableAttributedString alloc] initWithString:@"text bla bla bla"];
[myString appendAttributedString:attachmentString];
self.label.attributedText = myString;
Ответ №4:
Вы можете создать представление, соответствующее вашим потребностям, и наложить пользовательскую невидимую кнопку.
В качестве альтернативы вы можете создать подкласс UIButton
.
Комментарии:
1. Похоже, это не соответствует вопросу, или вам следует немного подробнее. Создание «чего-то», отвечающего моим потребностям, не помогает.
2. Я думал, вы знаете, как добавить подпредставление к представлениям. Это просто
addSubview
. Остальное должно быть очевидно.3. Хорошо, но даже если я добавлю вложенное представление, это не подскажет мне, как я могу отобразить значок в виде текста.
Ответ №5:
попробуйте: label.backgroundColor = [UIColor colorWithPatternImage:image];
Комментарии:
1. Ой, это действительно сложно :-)! Я попробую чуть позже. Вы пробовали это?