如何在iPhone上设置NSAtributedString的字体。我在网上找到了如何为mac做这件事,但它不一样。当我试图将它转换到iOS平台时,它无法正常工作。我需要设置字体名称和字体大小。
NSDictionary *attributes = [[NSDictionary alloc] initWithObjectsAndKeys:
[UIFont fontWithName:@"Helvetica" size:26], kCTFontAttributeName,
[UIColor blackColor], kCTForegroundColorAttributeName, nil];
答案 0 :(得分:7)
查看代码
infoString=@"This is an example of Attributed String";
NSMutableAttributedString *attString=[[NSMutableAttributedString alloc] initWithString:infoString];
NSInteger _stringLength=[infoString length];
UIColor *_black=[UIColor blackColor];
UIFont *font=[UIFont fontWithName:@"Helvetica-Bold" size:30.0f];
[attString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, _stringLength)];
[attString addAttribute:NSForegroundColorAttributeName value:_black range:NSMakeRange(0, _stringLength)];
答案 1 :(得分:6)
kCTFontAttributeName
的值必须是CTFontRef
,而不是UIFont *
。您无法直接将UIFont
转换为CTFont
。您应该只能使用CTFontCreateWithName
来创建它。完成后,您需要使用CFRelease
,以避免内存泄漏。查看CTFont
Reference。
此外,kCTForegroundColorAttributeName
的值必须是CGColorRef
,而不是UIColor *
。您可以通过说[UIColor blackColor].CGColor
轻松解决此问题。
如果您正在使用UIKit属性字符串支持(在iOS 6.0中添加),则可以使用NSFontAttributeName
键并将UIFont
作为值。您还可以使用NSForegroundColorAttributeName
键并使用UIColor
值。请参阅NSAttributedString UIKit Additions Reference。