Используя NSAttributedString, мы можем изменить цвет строки и т. д. Можно ли наклонить определенный символ в строке. Например
ответы будут оценены.
Я нашел решение, которое не соответствует действительности. Если кто-то исправит код, это будет полезно
- (void)drawRect:(CGRect)rect {
CTFontRef sysUIFont = CTFontCreateUIFontForLanguage(kCTFontSystemFontType,
14.0, NULL);
// blue
CGColorRef color = [UIColor blueColor].CGColor;
// single underline
//NSNumber *underline = [NSNumber numberWithInt:kCTUnderlineStyleSingle];
NSDictionary *attributesDict = [NSDictionary dictionaryWithObjectsAndKeys:
(__bridge id)sysUIFont, (id)kCTFontAttributeName,
color, (id)kCTForegroundColorAttributeName, nil];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CGContextTranslateCTM(context, 0, self.bounds.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
for (int i =0 ; i < 4; i++)
{
NSString *letter =[@"TEXT" substringWithRange:NSMakeRange(i, 1)];
NSAttributedString *stringToDraw = [[NSAttributedString alloc] initWithString:letter attributes:attributesDict];
// CGSize letterSize =[letter sizeWithAttributes:@{NSFontAttributeName:self.font}];
// draw
CTLineRef line = CTLineCreateWithAttributedString(
(CFAttributedStringRef)stringToDraw);
if(i==3){
CGContextRotateCTM (context, radians(90));
//18 & 17 are hard coded values
CGContextSetTextPosition(context, (10.0 * i)- 18, 10.0 - (17*i));
}
else{
CGContextSetTextPosition(context, 10.0 * i, 10.0);
}
CTLineDraw(line, context);
// clean up
CFRelease(line);
stringToDraw = nil;
}
CFRelease(sysUIFont);
//stringToDraw = nil;
}
Вывод :