标签: ctfont

iPhone - 将CTFont转换为UIFont?

我试图将CTFont转换为UIFont而不会丢失任何样式和属性,例如:

  • 字体名称
  • 字体大小
  • 字体颜色
  • 下划线
  • 胆大
  • 斜体
  • 等等

iphone objective-c uifont ios ctfont

5
推荐指数
1
解决办法
4950
查看次数

当 CTFeatureTypeIdentifier 不可用时如何使用 UIFontDescriptor

我使用以下代码片段来获取字体功能:

let font = UIFont.systemFont(ofSize: 16)
let features: NSArray = CTFontCopyFeatures(font)!
print("properties = \(features)")
Run Code Online (Sandbox Code Playgroud)

所以如果我看到这个:

{
CTFeatureTypeExclusive = 1;
CTFeatureTypeIdentifier = 22;
CTFeatureTypeName = "Text Spacing";
CTFeatureTypeSelectors =         (
                {
        CTFeatureSelectorDefault = 1;
        CTFeatureSelectorIdentifier = 7;
        CTFeatureSelectorName = "No Change";
    },
                {
        CTFeatureSelectorIdentifier = 8;
        CTFeatureSelectorName = "No Kerning";
    }
);
Run Code Online (Sandbox Code Playgroud)

我可以将其翻译成 Swift:

 let fontDescriptorFeatureSettings = [
            [ UIFontDescriptor.FeatureKey.featureIdentifier : 22,
              UIFontDescriptor.FeatureKey.typeIdentifier : 8], ]
Run Code Online (Sandbox Code Playgroud)

这成功地为我禁用了字距调整。

在同一个片段中,我看到:

{
CTFeatureOpenTypeTag = cv05;
CTFeatureSampleText = I;
CTFeatureTooltipText = "\U00a9 2015-2022 Apple Inc. …
Run Code Online (Sandbox Code Playgroud)

xcode ios ctfont uifontdescriptor

3
推荐指数
1
解决办法
338
查看次数

Objective-C - CTFont改变字体样式?

我有一个包含字体样式和sumbolic特征的CTFont.

我想创建一个新样式的新字体,它继承了第一个字体的符号特征.我怎样才能做到这一点?

CTFontRef newFontWithoutTraits = CTFontCreateWithName((CFString)newFontName, CTFontGetSize(font), NULL);
CTFontRef newFont = CTFontCreateCopyWithSymbolicTraits(newFontWithoutTraits, CTFontGetSize(font), NULL, 0, CTFontGetSymbolicTraits(font));
Run Code Online (Sandbox Code Playgroud)

新字体在这里为null我不知道应该传递给4th参数CTFontCreateCopyWithSymbolicTraits.

objective-c ctfont ctfontref

1
推荐指数
1
解决办法
4644
查看次数

CoreText - 创建CTFont时的性能警告?

创建CTFont时,我收到以下警告.

CoreText性能注释:客户端请求"ArialRoundedMTBold"使用名称的PostScript名称字体"Arial Rounded MT Bold".

// Creating Font
CTFontRef fontWithoutTrait = CTFontCreateWithName((__bridge CFStringRef)(name), size, NULL);

// Font names I use to create a font 
[UIFont familyNames];
Run Code Online (Sandbox Code Playgroud)

如果我删除从[UIFont familyNames]获取的任何字体名称中的所有空格,它是否是核心文本的预期字体名称是否安全?

objective-c core-text ctfont ctfontref

1
推荐指数
1
解决办法
4431
查看次数