在iOS上排列小字体的字体

前端之家收集整理的这篇文章主要介绍了在iOS上排列小字体的字体前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在iOS上,我通过将其文件名(.otf文件)添加到info.plist文件中,然后使用以下代码行,在我的项目中加载自定义字体:

UIFont myFont * = [UIFont fontWithName:titleFontName size:titleFontSize];

我获得了我可以在UILabels和UITextViews中使用的字体.

我如何获得这种字体只显示在小帽子?如果我在Photoshop中使用它,可以打开小帽开关让所有的单词都以小帽子排版(因此我得出结论,字体中没有任何内容).如何在iOS上获得类似的效果

将我的字符串转换为大写不是其他原因的可行选项.

更多信息:该字体在其家庭中只有一个成员,通过使用以下代码可以理解,家庭中没有独立的小帽子成员.

for (NSString * familyName in [UIFont familyNames]) {

        NSLog(@"---------------- %@ ---------------",familyName);
        for (NSString * fontName in[UIFont fontNamesForFamilyName:familyName] )
           NSLog(@"- %@",fontName);
   }

解决方法

通过打开类型功能在字体中启用小帽.在iOS 7中,我们可以使用字体描述符来访问开放类型的功能并启用小帽子.

This question进入如何使用核心文本打开小帽,但是对于UIFonts和UIKit视图也可以轻松实现.您将需要创建一个UIFontDescriptor,并将UIFontDescriptorFeatureSettingsAttribute设置为您要启用的功能的字典数组.

每个字体特征字典包含一个键和值,以指定要素类型,以及功能选择器的键和值.根据您使用的字体,您需要找到对应于小盖帽的正确值.您可以在数组中找到注释部分记录的内容.

UIFont类别

此类别将生成启用小帽的UIFont对象.您需要添加正确的字体名称.

#import "UIFont+SmallCaps.h"
#import <CoreText/CoreText.h>

@implementation UIFont (SmallCaps)

+ (UIFont *) applicationSmallCapsFontWithSize:(CGFloat) size {
    /*
    // Use this to log all of the properties for a particular font
    UIFont *font = [UIFont fontWithName: fontName size: fontSize];
    CFArrayRef  fontProperties  =  CTFontCopyFeatures ( ( __bridge CTFontRef ) font ) ;
    NSLog(@"properties = %@",fontProperties);
    */

    NSArray *fontFeatureSettings = @[ @{ UIFontFeatureTypeIdentifierKey: @(kLowerCaseType),UIFontFeatureSelectorIdentifierKey : @(kLowerCaseSmallCapsSelector) } ];

    NSDictionary *fontAttributes = @{ UIFontDescriptorFeatureSettingsAttribute: fontFeatureSettings,UIFontDescriptorNameAttribute: FONT_NAME } ;

    UIFontDescriptor *fontDescriptor = [ [UIFontDescriptor alloc] initWithFontAttributes: fontAttributes ];

    return [UIFont fontWithDescriptor:fontDescriptor size:size];
}

@end

猜你在找的iOS相关文章