1.NSAttributedString
这个类主要是 text字符的属性.
有几个常用的属性
NSFontAttributeName
NSForegroundColorAttributeName
NSBackgroundColorAttributeName
NSStrokeColorAttributeName
NSStrokeWidthAttributeName
最简单的例子
随意自定义一个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];
}
如果字体不知道,可以调用
NSLog(@"%@",[UIFont familyNames]);
输入结果如下
(
Thonburi,
"Khmer Sangam MN",
"Snell Roundhand",
"Academy Engraved LET",
......
)
这是简单的一个例子
又写了一个复杂些的例子,其中用到了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,更好的查看输出的区域
输出结果
网友评论