NSString中的Unicode符号具有错误的维度

时间:2015-01-21 17:53:43

标签: ios objective-c unicode nsstring uialertaction

我正在尝试在UIAlectAction中放置两个Unicode符号。我应该有两个圆圈,一个是空的,另一个是圆形的。我目前的代码是:

NSString *unicodeStar = [NSString stringWithFormat:@"%C %C", 0x25CB,0x25CF];


    UIAlertAction* star = [UIAlertAction
                                 actionWithTitle:unicodeStar
                                 style:UIAlertActionStyleDefault
                                 handler:^(UIAlertAction * action)
                                 {

                                 [view dismissViewControllerAnimated:YES completion:nil];

                                 }];
    [view addAction:star];

根据Unicode Character Table,这两个符号应具有相同的维度,但实际结果为:

enter image description here

所有其他圈子都具有相同的尺寸。我错过了什么?

1 个答案:

答案 0 :(得分:2)

它是警报视图使用的字体。如果你在OS X中使用角色查看器,当你看到"白圈"字符,它在您的机器上的所有字体中显示相同的字符,您可以看到它有很多不同的大小,具体取决于字体。

由于无法更改警报视图使用的字体,因此最佳选择是选择两个不同的字符。有几个未填充的圆圈字符和几个填充圆圈字符。尝试各种组合,直到找到两个在警报视图使用的标准系统字体中以相同大小显示的组合。

更新

这两个大小相同:

NSString *unicodeStar = @"⚪︎ ⚫︎";

空心圆圈是" MEDIUM WHITE CIRCLE" (U + 26AA U + FE0E),带圆圈的是'" MEDIUM BLACK CIRCLE" (U + 26AB U + FE0E)。