1.NSAttributedString
這個(gè)類主要是 text字符的屬性.
有幾個(gè)常用的屬性
NSFontAttributeName
NSForegroundColorAttributeName
NSBackgroundColorAttributeName
NSStrokeColorAttributeName
NSStrokeWidthAttributeName
最簡(jiǎn)單的例子
隨意自定義一個(gè)view
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
[self drawText:context];
}
- (void)drawText1:(CGContextRef)context
{
NSString *str1 = @"string ";
NSLog(@"%@",[UIFont familyNames]);
NSDictionary *attributes1 = @{NSFontAttributeName:[UIFont fontWithName:@"Snell Roundhand" size:50]};
[str1 drawAtPoint:CGPointMake(100, 100) withAttributes:attributes1];
}
如果字體不知道,可以調(diào)用
NSLog(@"%@",[UIFont familyNames]);
輸入結(jié)果如下
(
Thonburi,
"Khmer Sangam MN",
"Snell Roundhand",
"Academy Engraved LET",
......
)
這是簡(jiǎn)單的一個(gè)例子
又寫了一個(gè)復(fù)雜些的例子,其中用到了NSMutableParagraphStyle
- (void)drawText2:(CGContextRef)context
{
NSString *str2 =@"hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold hellowold";
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
[paragraphStyle setAlignment:NSTextAlignmentLeft];
[paragraphStyle setLineBreakMode:NSLineBreakByCharWrapping];
[paragraphStyle setHeadIndent:35];
CGRect rect = CGRectMake(50, 150, 200, 100);
[[UIColor lightGrayColor] set];
UIRectFill(rect);
NSDictionary *attributes2 =
@{NSFontAttributeName:[UIFont fontWithName:@"Didot" size:10],
NSParagraphStyleAttributeName:paragraphStyle,
NSForegroundColorAttributeName:[UIColor redColor],
NSBackgroundColorAttributeName:[UIColor yellowColor]
};
[str2 drawInRect:CGRectMake(50, 150, 200, 100) withAttributes:attributes2];
}
其中
是為了顯示rect,更好的查看輸出的區(qū)域

輸出結(jié)果