-->

如何标字母时,不存在系统字体没有字形?(How to subscript letters when

2019-10-18 10:42发布

我已经能够在我的应用程序成功地标数字做:

static const unichar kSubscriptZero = 0x2080;
    int numberOfHydrogens = 2;
    NSString *header1 = [NSString stringWithFormat:@"H%CO",
                         kSubscriptZero + numberOfHydrogens];

问题是这样的:我想这样做与其他字符相同的东西,可以在Unicode字符被找到,但它没有工作,我所得到的是一个方盒子,而不是我的性格,原来这意味着存在不字形我的字体为该字符。 我回顾先前的问题问在这里 ,并试图为这个数字相比其他其他字符:

    if (section == whicheverSectionIndexIsCorrect) {
    NSString *plainText = @"2H2 + O2 → 2H2O";
    id subscriptOffset = @(-0.5); // random guess here, adjust offset as needed

    NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:plainText];

    // apply attributes for each character to subscript
    [text addAttribute:(NSString *)kCTSuperscriptAttributeName 
                 value:subscriptOffset
                 range:NSMakeRange(2, 1)];
    [text addAttribute:(NSString *)kCTSuperscriptAttributeName
                 value:subscriptOffset
                 range:NSMakeRange(7, 1)];
    // etc.

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 64)];
    UILabel *label = [[UILabel alloc] init];
    label.attributedText = text;
    [view addSubview:label];
    return view;
}

但我的问题是这样的:如果我改变小数位数subscriptOffset它根本没有影响(因此-0.1使我有同样的结果-0.9),但是当我改变这个数字从1.0到2.0,等等...我问题是,是太大的跳跃。 我该如何处理这并获得不错的外观标我打算?

更新以下是我目前的状况截图:我需要能够标“T”

文章来源: How to subscript letters when not there is no glyph in system font?