addAttribute к nsstring, которые представляют "к власти.."
Следующий код принимает строку @"десять к степени двух = 10[2]" и устанавливает красный цвет на число 2
Q: Я хотел бы иметь этот (причудливый) эффект:
(имейте в виду, что я ищу общий эффект, представляющий небольшой, небольшой номер над строкой - сразу после строки, не обязательно "в силу...", тем не менее он должен выглядеть как на изображении выше):
-(void)textAttribute
{
NSString *myString = @"ten to the power of two = 10[2]";
NSRange start = [myString rangeOfString:@"["];
NSRange end = [myString rangeOfString:@"]"];
if (start.location != NSNotFound && end.location != NSNotFound && end.location > start.location) {
//NSString *betweenBraces = [myString substringWithRange:NSMakeRange(start.location+1, end.location-(start.location+1))];
NSRange myRange = NSMakeRange(start.location+1, end.location-(start.location+1));
NSMutableAttributedString *s =
[[NSMutableAttributedString alloc] initWithString:myString];
UIColor *powerColor = [UIColor redColor];
[s addAttribute:NSForegroundColorAttributeName value:powerColor range:myRange];
triggerLabel.text = [NSString stringWithFormat:@"Trigger words:%@",powerColor];
triggerLabel.attributedText = s;
}
}
1 ответ
Решение
Вам не нужно полагаться на специальные символы, вам просто нужно отрегулировать базовую линию секции экспоненты строки, чтобы она была надстрочной.
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"ten to the power of 2 = 10"];
NSDictionary *exponentAttributes = @{
NSForegroundColorAttributeName : [UIColor redColor],
NSBaselineOffsetAttributeName : @(8)
};
NSAttributedString *exponentAttributedString = [[NSAttributedString alloc] initWithString:@"2" attributes:exponentAttributes];
[attributedString appendAttributedString:exponentAttributedString];
triggerLabel.attributedText = attributedString;
Вы можете настроить это для анализа и построения строк, используя предоставленную разметку - подход является важной частью. Возможно, вы захотите указать меньший шрифт тоже с NSFontAttributeName
,