索引字符串中的上标美分

时间:2014-08-18 15:36:28

标签: objective-c nsattributedstring

我试图让我的标签看起来像这样:

enter image description here

但是使用属性字符串,我设法得到了这个结果:

enter image description here

我的代码:

NSString *string = [NSString stringWithFormat:@"%0.2f",ask];

NSMutableAttributedString *buyString = [[NSMutableAttributedString alloc] initWithString:string];

[buyString addAttribute:NSFontAttributeName
                  value:[UIFont systemFontOfSize:15.0]
                  range:NSMakeRange(2, buyString.length - 2)];

self.labelBuy.attributedText = buyString;

如你所见,点后面的数字,保持在下面,我想把它们作为第一个例子弹出顶部。 有没有办法设置属性字符串框架?

2 个答案:

答案 0 :(得分:5)

您必须使用NSBaselineOffsetAttributedName

来自doc:

  

NSBaselineOffsetAttributeName
  该属性的值为   NSNumber对象包含指示的浮点值   角色与基线的偏移量,以磅为单位。默认值为   0.
适用于iOS 7.0及更高版本。

从你的例子:

[buyString addAttribute:NSBaselineOffsetAttributeName
                  value:@(10.0)
                  range:NSMakeRange(2, buyString.length - 2)];

您可能需要更改值以满足您的需求。

答案 1 :(得分:0)

为什么不实际使用上标?您必须首先#import“CoreText / CoreText.h”

    [buyString addAttribute:(NSString *)kCTSuperscriptAttributeName 
                      value:@1 
                      range:NSMakeRange(2, buyString.length - 2)];