Как отобразить значок авторского права в тексте UILabel?

StackOverflow https://stackoverflow.com/questions/1614689

Вопрос

Кто-нибудь знает, как отобразить значок авторского права в тексте 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";

© 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 &copy; </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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top