gpt4 book ai didi

objective-c - 如何使用 NSAttributedString 制作下标和上标?

转载 作者:太空狗 更新时间:2023-10-30 03:11:03 27 4
gpt4 key购买 nike

我需要为化学公式(H2O、Na^2+ 等)制作下标?

这是否可以与 NSAttributedString 一起使用,或者是否有其他/更简单的方法来制作下标?

最佳答案

这是我在 iOS 6 中所做的。首先添加 CoreText 和 QuartzCore 框架。然后导入:

#import <QuartzCore/QuartzCore.h>
#import <CoreText/CTStringAttributes.h>
#import <CoreText/CoreText.h>

我做了一个小函数,它输入一个普通的 NSString 并导出一个 NSMutableAttributedString,最后一个字符在上标中。这可以修改为允许设置上标或下标,将 kCTSuperscriptAttributeName 值更改为 -1。您也可以添加一个变量来指定将上标放在字符串中的位置。现在它只是假定字符串的结尾。

- (NSMutableAttributedString *)plainStringToAttributedUnits:(NSString *)string;
{
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:string];
UIFont *font = [UIFont systemFontOfSize:10.0f];
UIFont *smallFont = [UIFont systemFontOfSize:9.0f];

[attString beginEditing];
[attString addAttribute:NSFontAttributeName value:(font) range:NSMakeRange(0, string.length - 2)];
[attString addAttribute:NSFontAttributeName value:(smallFont) range:NSMakeRange(string.length - 1, 1)];
[attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"1" range:NSMakeRange(string.length - 1, 1)];
[attString addAttribute:(NSString*)kCTForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(0, string.length - 1)];
[attString endEditing];
return attString;
}

现在,当我想使用它时,我可以执行以下操作将其放入 UITextField 中:

    NSString *qlwUnitsPlainText = @"m3";
self.quantityLoadWeightUnits_textField.attributedText = [self plainStringToAttributedUnits:qlwUnitsPlainText];

我希望这对其他人有帮助,那里的例子不多!

关于objective-c - 如何使用 NSAttributedString 制作下标和上标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8555735/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com