我有一个用代码
绘制的字符串 [@"-" drawInRect: r
withFont: f2
lineBreakMode: UILineBreakModeWordWrap
alignment: UITextAlignmentCenter];
但是我想更改此字符串中的颜色,因为NSString无法将其修改为NSAttributedString。
然而这不起作用,这是我修改过的代码,我找不到其他参数的属性
NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:f2,NSFontAttributeName,
nil];
NSAttributedString *drawingString = [[NSAttributedString alloc] initWithString:@"-" attributes:attrsDictionary];
[drawingString drawInRect:r];
感谢任何帮助,这是否是正确的方法。
答案 0 :(得分:2)
谢谢!这是我最终编辑的代码
NSMutableParagraphStyle *paraAttr = [[NSMutableParagraphStyle defaultParagraphStyle ] mutableCopy];
[paraAttr setAlignment:UITextAlignmentCenter];
[paraAttr setLineBreakMode:UILineBreakModeWordWrap];
NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:f2,NSFontAttributeName,
[UIColor grayColor],NSForegroundColorAttributeName,
paraAttr,NSParagraphStyleAttributeName,
nil];
NSAttributedString *drawingString = [[NSAttributedString alloc] initWithString:@"•" attributes:attrsDictionary];
[drawingString drawInRect:r];
答案 1 :(得分:1)
您还需要设置NSForegroundColorAttributeName
属性。
这里是complete list - 在常量部分:
NSString *const NSFontAttributeName;
NSString *const NSParagraphStyleAttributeName;
NSString *const NSForegroundColorAttributeName;
NSString *const NSBackgroundColorAttributeName;
NSString *const NSLigatureAttributeName;
NSString *const NSKernAttributeName;
NSString *const NSStrikethroughStyleAttributeName;
NSString *const NSUnderlineStyleAttributeName;
NSString *const NSStrokeColorAttributeName;
NSString *const NSStrokeWidthAttributeName;
NSString *const NSShadowAttributeName;
NSString *const NSVerticalGlyphFormAttributeName;