2012-01-27 2 views
2

Используемый мной UIFont поддерживает символ, который я хочу. Как программно я могу ввести этот символ в код?Использование символа в UIFont

UILabel *label = [ [UILabel alloc ] initWithFrame:frame]; 
scoreLabel.font = [UIFont fontWithName:@"Arial Rounded MT Bold" size:(20.0)]; 
label.text = [NSString stringWithFormat: @"%d", text]; 
[self addSubview:label]; 
+0

Вы никогда не говорили, что это за символ. Если текст содержит символ и является 'NSString', тогда вам нужно изменить'% d' на '% @' – Joe

+0

Мне нужны символы разделения и умножения, помеченные как 247 и 215 в этой таблице http: //www.font-cat. com/font_img_big_14x16.php? font_id = 617 для Arial Rounded MT Полужирный шрифт – Vad

ответ

5

Вы можете на самом деле просто вставить символ прямо в исходный код. Все инструменты Mac OS X поддерживают UTF8 в исходном коде.

Так что это совершенно законно:

NSString *qa = @"6 ÷ 2 = 3"; 

Вы можете ввести символ ÷ используя опцию-слэш, или использовать для просмотра символов Mac OS X и дважды щелкните по нему.

Тем не менее, я не уверен, что все, что я использую, будет поддерживать UTF8 должным образом. Поэтому для себя я использую escape-последовательности unicode. Например:

NSString *qa = @"6 \u00F7 2 = 3"; 
+0

Отличный ответ. Большое спасибо. – Vad

0

Вы должны знать значение Unicode для него и вместо% использования г следующее:

label.text = [NSString stringWithFormat: @"%C", 0x1234]; 

Если 0x1234 является значение Unicode в шестнадцатеричной.

+0

label.text = [NSString stringWithFormat: @ "% C", 0x247]; - создает букву G вместо знака деления. См. Мой комментарий выше о таблице, на которую я ссылаюсь. – Vad

+0

Нет, вы смешиваете десятичные значения (база 10) и шестнадцатеричный (базовый 16). Код, представленный здесь, предназначен для Unicode в шестнадцатеричном формате, а 247 - в базе 10, поэтому, пожалуйста, конвертируйте 247 в базовый 16, ответ будет 0xF7. Попробуйте это значение, и вы получите нужный символ. – antf

+0

По какой-то причине 0xF7 дает мне знак ~ – Vad

0

Другой способ:

unichar myCharacter = 247; // DIVISION SIGN 
label.text = [NSString stringWithCharacters:&myCharacter length:1]; 
+0

Где найти знаки деления и умножения (см. Мой комментарий выше)? Спасибо – Vad

+0

Существует множество веб-сайтов, которые позволяют вам искать таблицы символов Юникода. Например, http://www.mclean.net.nz/ucf/ http://unicodelookup.com/ http://www.unicode.org/charts/charindex.html –

+0

В приведенной таблице используются номера символов Unicode. Таким образом, символы, которые вы хотите, это номера символов 215 и 247. Вам не нужно преобразовывать их в шестнадцатеричный. –