关于coretext绘图字体始终无法改变大小的原因

本文探讨了在使用CoreText进行绘图时,遇到的关于字体设置的困惑,并通过对比两种方法找到了正确的解决方案。

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

下午还在弄那个coretext绘图,遇到一个奇怪的问题,按照我在网上搜的方法始终无法正确设置字体,怎么都不改变:

 CTFontRef helvetica = CTFontCreateWithName(CFSTR("AmericanTypewriter"),30.0, NULL); 

 CTFontRef helveticaBold =CTFontCreateWithName(CFSTR("AmericanTypewriter"), 14.0, NULL);

 [stringCopy addAttribute:(id)kCTFontAttributeName value:(id)helvetica range:NSMakeRange(0, 5)]; 

[stringCopy addAttribute:(id)kCTFontAttributeName value:(id)helveticaBold range:NSMakeRange(0, [attString length])]; 



后来又搜到一篇博客:

http://blog.sina.com.cn/s/blog_923fdd9b01012fj9.html

发现人家的是这样写的:(现在证明这样是没问题的)

CTFontRef  font_hello = CTFontCreateWithName((CFStringRef)@"Helvetica",24,NULL);

 CTFontRef  font_world = CTFontCreateWithName((CFStringRef)@"GillSans",20,NULL);

    [stringCopy addAttribute: (NSString*)(kCTFontAttributeName) value:(id)font_hello range:NSMakeRange(5,8)];

    [stringCopy addAttribute: (NSString*)(kCTFontAttributeName) value:(id)font_world range:NSMakeRange(0,[attString length])];



总结:上边那个应该也没错,我估计 CFSTR 这个方法是人家写的一个宏定义吧,现在知道了,以后就还是用第二种吧,省得再犯错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值