2

如果我有一段文字,UILabel我需要在文字中间显示一个注册商标,我应该如何实现?我真的不想使用图像视图。我有点想覆盖drawRect或……但还没有弄清楚。

谢谢!

4

4 回答 4

5

\u2122您可以在 an 中的任何位置使用 Unicode 字符序列NSString,它将由 a 适当呈现UILabel

someLabel.text = @"This is some text about a Trademarked Name\u2122";
于 2013-04-22T14:41:06.080 回答
2

正如马特建议的那样,它是 unicode。这就是在 NSLocalizedString 中使用它的简单方法。Unicode 代表符号。NSLocalizedStrings 是使用语言文件处理字符串以支持多种语言时的推荐做法。

someText.text = NSLocalizedString(@"iPhone\u2122",nil);
于 2013-04-22T14:38:07.043 回答
2

使用字符 REGISTERED SIGN “®” U+00AE(写在字符串文字中,就\00AE好像您不能直接键入一样)。请注意,它的外观因字体而异:通常,它看起来像一个上标,但这不是必需的,有些字体在文本基线上显示它,“R”大约是常规“R”大小的一半,使其相当可读。

于 2013-04-22T16:08:06.060 回答
2

从 iOS6> 我们可以使用 NSAttributedString 概念。请看下面的代码片段。如果有人已经意识到这一点,请忽略。

static NSString *html =
    @"<html>"
    "  <body>Here is trademark &reg; </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);
于 2014-09-19T10:36:41.787 回答