关于drawInRect: withAttributes: 等新方法的使用

本文介绍了iOS中一种新的文本绘制方法,使用attributes参数替代原有的直接指定样式的方式。通过NSMutableParagraphStyle和NSDictionary设置字体属性、段落样式及颜色,实现更灵活的文本布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/reylen/article/details/47661405

新的方法采用的是 attributes,attributes参数需要的是一个数组 
我们常用的有几个:

NSMutableParagraphStyle* paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
    paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
    NSDictionary* dic = @{NSFontAttributeName:font,NSParagraphStyleAttributeName:paragraphStyle,NSForegroundColorAttributeName:[UIColor lightGrayColor]};

通过设置 NSParagraphStyleAttributeName,我们可以设置string的段落风格,比如 lineBreakMode 
NSForegroundColorAttributeName 字体颜色 
eg: 
原先可以这样写:
CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(300, MAXFLOAT)lineBreakMode:NSLineBreakByCharWrapping];
[text drawInRect:CGRectMake(10,10,300, size.height) withFont:font lineBreakMode:NSLineBreakByCharWrapping];
iOS7 之后需要切换新方法,如下:
NSMutableParagraphStyle* paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
    paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
    NSDictionary*attribute = @{NSFontAttributeName:font,NSParagraphStyleAttributeName:paragraphStyle};
    CGSize size = [text boundingRectWithSize:CGSizeMake(300, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attribute context:nil].size;
    [text drawWithRect:CGRectMake(10, 10,300, size.height) options:NSStringDrawingUsesLineFragmentOrigin attributes:attribute context:nil];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值