下午还在弄那个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 这个方法是人家写的一个宏定义吧,现在知道了,以后就还是用第二种吧,省得再犯错