Как отобразить значок авторского права в тексте UILabel?
-
06-07-2019 - |
Вопрос
Кто-нибудь знает, как отобразить значок авторского права в тексте UILabel?Это значок с кружком вокруг c.HTML-код для него: ©
или ©
.
Я попробовал следующий код:
UILabel *contactInfo = [[UILabel alloc] initWithFrame:CGRectMake(-55,135,420,100)];
contactInfo.text = @"'©):'2009 Nationwide ";
или
contactInfo.text = @"'©'2009 Nationwide ";
или
contactInfo.text = @"©2009 Nationwide ";
Он просто печатает все в виде текста и без значков.
Это будет работать в WebView, но мне это нужно как текст UILabel.Любая помощь?
Решение
Если ваши исходные файлы имеют формат UTF-8, какими они должны быть, все должно работать нормально.В противном случае вам следует использовать файлы .strings в сочетании с макросом NSLocalizedString() и поместить текст в файлы UTF-16.
Работает для меня: myUILabel.text = @"© by me";
(источник: Hillrippers.ch)
Редактировать:Теперь, когда я вижу, что вы попытались вставить символ как объект HTML — это не сработало, просто вставьте символ так, как он появляется.
Другие советы
В конструкторе интерфейсов попробуйте Вариант и г вместе.
Если у вас нет Вариант ключ, попробуй с АЛЬТ.
Другой способ вставки символов, не обращаясь к кодировке символов исходных файлов, — это закодировать их как байты UTF-8, используя \x
убегает.
В соответствии с Fileformat.info, знак авторского права в байтах UTF-8 — 0xC2 0xA9.
Итак, это работает: @"\xC2\xA9 Nationwide"
Я так все делаю.
Скопируйте и вставьте символ авторского права © прямо в исходный код.
Обычно не рекомендуется пропускать через компилятор строки, не относящиеся к ASCII.Таким образом, подход UTF-8 лучше, хотя и нечитаемый.Вы могли бы использовать
NSLocalizedString(@"copyright", @"");
а затем файл .strings с
copyright = "©2009";
было бы намного проще обобщить на другие строки, отличные от ASCII.
(Кстати, это опция + g, а не опция + c.)
В iOS6> мы можем использовать концепцию NSAttributedString.См. приведенный ниже фрагмент кода.Пожалуйста, игнорируйте, если кто-то уже знает об этом.
static NSString *html =
@"<html>"
" <body>Here is copyright © </i></body>"
"</html>";
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 280, 300, 200)];
NSError *err = nil;
label.attributedText =
[[NSAttributedString alloc]
initWithData: [html dataUsingEncoding:NSUTF8StringEncoding]
options: @{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType }
documentAttributes: nil
error: &err];
if(err)
NSLog(@"Unable to parse label text: %@", err);