Как отобразить значок авторского права в тексте UILabel?
Кто-нибудь знает, как отображать значок авторского права в тексте 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.
Любая помощь?
Ответы
Ответ 1
Если ваши исходные файлы находятся в UTF-8, какими они должны быть, это должно работать просто отлично. В противном случае вы должны использовать .strings файлы в сочетании с макросом NSLocalizedString() и поместить свой текст в файлы UTF-16.
У меня работает: myUILabel.text = @"© by me";
(источник: hillrippers.ch)
Изменение: Теперь, когда я вижу, что вы пытались вставить символ как HTML-сущность - это не работает, просто вставьте символ, как он выглядит.
Ответ 2
В построителе интерфейса попробуйте Option и G вместе.
Если у вас нет клавиши Option, попробуйте с ALT.
Ответ 3
Другой способ вставки символов без обращения к кодировке символов ваших исходных файлов - это кодирование их как байтов UTF-8 с помощью \x
экранов.
Согласно Fileformat.info, знак Copyright в байтах UTF-8 равен 0xC2 0xA9.
Итак, это работает: @"\xC2\xA9 Nationwide"
Вот как я все делаю.
Ответ 4
Скопируйте и вставьте символ и копию авторского права; непосредственно в исходный код.
Ответ 5
Как правило, отличная идея поместить строки без ASCII через компилятор. Таким образом, подход UTF-8 лучше, если нечитабельно. Вы можете использовать
NSLocalizedString(@"copyright", @"");
а затем файл .strings с
copyright = "©2009";
было бы намного проще обобщать на другие строки, отличные от ASCII.
(BTW, опция + g, а не опция + c.)
Ответ 6
Из 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);