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

© 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 &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);