Как отобразить значок авторского права в тексте UILabel? - PullRequest
12 голосов
/ 23 октября 2009

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

Он просто печатает все как текст, без значка.

Это будет работать в веб-представлении, но мне нужно это как текст UILabel Любая помощь?

Ответы [ 6 ]

27 голосов
/ 23 октября 2009

В конструкторе интерфейсов попробуйте Option и G вместе.

Если у вас нет клавиши Option , попробуйте ALT .

11 голосов
/ 23 октября 2009

Если ваши исходные файлы находятся в UTF-8, какими они должны быть, это должно работать просто отлично. В противном случае вы должны использовать .strings-файлы в сочетании с макросом NSLocalizedString () и поместить свой текст в файлы UTF-16.

У меня работает: myUILabel.text = @"© by me";

© by me
(источник: hillrippers.ch )

Edit: Теперь, когда я вижу, что вы пытались вставить символ как HTML-сущность - это не работает, просто вставьте символ, как он выглядит.

7 голосов
/ 24 октября 2009

Еще один способ вставки символов без учета кодировки символов в исходных файлах - это кодировать их как байты UTF-8, используя \x escape-символы.

Согласно Fileformat.info , знак авторского права в байтах UTF-8 равен 0xC2 0xA9.

Так что это работает: @"\xC2\xA9 Nationwide"

Так я делаю все свое.

5 голосов
/ 23 октября 2009

Скопируйте и вставьте символ авторского права & copy; прямо в ваш исходный код.

1 голос
/ 19 сентября 2014

Из 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);
1 голос
/ 26 октября 2009

Обычно не рекомендуется помещать строки не ASCII через компилятор. Подход UTF-8, таким образом, лучше, если не читается. Вы можете использовать

NSLocalizedString(@"copyright", @"");

, а затем файл .strings с

copyright = "©2009";

было бы намного проще обобщить на другие строки не-ASCII.

(Кстати, это опция + g, а не опция + c.)

...