2009-10-23 9 views
10

Czy ktoś wie, jak wyświetlić ikonę praw autorskich w tekście UILabel? To jest ikona z okręgiem wokół c. Kod html to: © lub ©.Jak wyświetlić ikonę praw autorskich w tekście UILabel?

Próbowałem następujący kod:

UILabel *contactInfo = [[UILabel alloc] initWithFrame:CGRectMake(-55,135,420,100)]; 
contactInfo.text = @"'©):'2009 Nationwide "; 

lub

contactInfo.text = @"'©'2009 Nationwide "; 

lub

contactInfo.text = @"©2009 Nationwide "; 

To po prostu drukuje wszystko jako tekst i żadna ikona.

To działałoby w webView, ale potrzebuję go jako tekstu UILabel. Każda pomoc?

+0

kod HTML jest '& copy' bez przestrzeni lub '& #169;' – Neeraj

+0

próbowałeś Unicode? Jest 169 – Bostone

Odpowiedz

11

Jeśli twoje pliki źródłowe są w formacie UTF-8, jakie powinny być, powinno to działać dobrze. W przeciwnym razie powinieneś użyć plików .strings w połączeniu z makrem NSLocalizedString() i umieścić swój tekst w plikach UTF-16.

roboty dla mnie: myUILabel.text = @"© by me";

© by me http://www.hillrippers.ch/temp/Screen%20shot%202009-10-23%20at%2018.59.40.png

Edit: Teraz widzę, że już próbował wstawić symbol jako podmiot HTML - to nie działa, po prostu wstawić symbol jako wydaje się.

21

W konstruktorze interfejsów wypróbuj Opcja i G razem.

Jeśli nie masz Opcja klucz, spróbuj ALT.

+0

również pracuje w edytorze kodu – pbaris

4

Skopiuj i wklej symbol praw autorskich © bezpośrednio do kodu źródłowego.

7

Innym sposobem wstawiania symboli bez zajmowania się kodowaniem znaków w plikach źródłowych jest zakodowanie ich jako bajtów UTF-8 przy użyciu kodów escape \x.

Zgodnie z Fileformat.info, znak praw autorskich w bajtach UTF-8 to 0xC2 0xA9.

Tak to działa: @"\xC2\xA9 Nationwide"

Tak właśnie robię wszystko kopalni.

1

Zazwyczaj nie jest dobrym pomysłem umieszczanie ciągów znaków spoza zestawu ASCII w kompilatorze. Podejście UTF-8 jest więc lepsze, jeśli nie można go odczytać. Można użyć

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

a następnie pliki .strings z

copyright = "©2009"; 

byłoby o wiele łatwiejsze do uogólnić na inne ciągi nie-ASCII.

(Przy okazji, to opcja + g, nie opcja + c.)

1

Z iOS6> możemy użyć koncepcji NSAttributedString. Zobacz poniższy fragment kodu. Proszę zignorować, jeśli ktoś już o tym wie.

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); 
Powiązane problemy