如果我有一段文字,UILabel
我需要在文字中间显示一个注册商标,我应该如何实现?我真的不想使用图像视图。我有点想覆盖drawRect
或……但还没有弄清楚。
谢谢!
如果我有一段文字,UILabel
我需要在文字中间显示一个注册商标,我应该如何实现?我真的不想使用图像视图。我有点想覆盖drawRect
或……但还没有弄清楚。
谢谢!
\u2122
您可以在 an 中的任何位置使用 Unicode 字符序列NSString
,它将由 a 适当呈现UILabel
:
someLabel.text = @"This is some text about a Trademarked Name\u2122";
正如马特建议的那样,它是 unicode。这就是在 NSLocalizedString 中使用它的简单方法。Unicode 代表符号。NSLocalizedStrings 是使用语言文件处理字符串以支持多种语言时的推荐做法。
someText.text = NSLocalizedString(@"iPhone\u2122",nil);
使用字符 REGISTERED SIGN “®” U+00AE(写在字符串文字中,就\00AE
好像您不能直接键入一样)。请注意,它的外观因字体而异:通常,它看起来像一个上标,但这不是必需的,有些字体在文本基线上显示它,“R”大约是常规“R”大小的一半,使其相当可读。
从 iOS6> 我们可以使用 NSAttributedString 概念。请看下面的代码片段。如果有人已经意识到这一点,请忽略。
static NSString *html =
@"<html>"
" <body>Here is trademark ® </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);