我想做一个NSFont来描述Arial,normal,30pt的高度。到目前为止,我有:
NSNumber *weight = [NSNumber numberWithFloat:1.0];
NSNumber *slant = [NSNumber numberWithFloat:1.0];
NSDictionary *fontTraits = [NSDictionary dictionaryWithObjectsAndKeys: weight, NSFontWeightTrait, slant, NSFontSlantTrait, nil];
NSDictionary *fontAttributes = [NSDictionary dictionaryWithObjectsAndKeys: @"Arial", NSFontFaceAttribute,
fontTraits, NSFontTraitsAttribute, nil];
NSFontDescriptor *fontDescriptor = [NSFontDescriptor fontDescriptorWithFontAttributes: fontAttributes];
NSFont *largeFont = [NSFont fontWithDescriptor: fontDescriptor size: 30];但生成的NSFont大小不正确。我可以把任何我想要的尺寸放进去,它们看起来都一样。
发布于 2012-01-25 05:15:19
你写的是iOS还是Mac?
这在我的Mac应用程序中运行良好:
NSFont* font = [NSFont fontWithName:@"Arial" size:30];用粗体和/或斜体更新:这对你来说足够了吗?
NSFont* font = [NSFont fontWithName:@"Arial Italic" size:30];
NSFont* font = [NSFont fontWithName:@"Arial Bold" size:30];
NSFont* font = [NSFont fontWithName:@"Arial Bold Italic" size:30];更新2可能会看一看NSFontManager
// convert font
NSFont* font = [NSFont fontWithName:@"Arial" size:30];
font = [[NSFontManager sharedFontManager] convertFont:font toHaveTrait:NSFontItalicTrait];
// create with traits and weight
NSFont* font = [[NSFontManager sharedFontManager] fontWithFamily:@"Arial" traits:NSFontItalicTrait weight:2 size:30];但是使用这两种方法都不能创建粗细为5、斜度为4的字体。
我最近和一位设计师谈到了字体,他告诉我,像Arial这样的字体实际上是4种字体(即Arial、Arial Italic、Arial Bold和Arial Bold Italic)。其他3种字体样式(带有特征)不是由算法动态生成的。
https://stackoverflow.com/questions/8993625
复制相似问题