iPhone — Установка значка и текста в UILabel

#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. Ой, это действительно сложно :-)! Я попробую чуть позже. Вы пробовали это?