NSString 中的 Unicode 符号尺寸错误

Unicode symbols in NSString have wrong dimension

我试图在 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这两个符号应该具有相同的维度但实际结果是:

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

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

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

更新:

这里有两个尺寸相同:

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

空心圆是"MEDIUM WHITE CIRCLE" (U+26AA U+FE0E),实心圆是"MEDIUM BLACK CIRCLE" (U+26AB U+FE0E)。