Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法添加字体为Avenir Next CONNECT[Swift 3]的属性字符串_Ios_Swift_Uitextview_Nsattributedstring - Fatal编程技术网

Ios 无法添加字体为Avenir Next CONNECT[Swift 3]的属性字符串

Ios 无法添加字体为Avenir Next CONNECT[Swift 3]的属性字符串,ios,swift,uitextview,nsattributedstring,Ios,Swift,Uitextview,Nsattributedstring,对于上述代码,我得到以下错误: 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[\u SwiftValue\u isDefaultFace]:未识别的选择器已发送到实例0x60800046930” 如果我将NSFontAttributeName更改为UIFont.boldSystemFont(大小:20),我可以看到粗体文本。 另外,在添加NSUnderlineStyleAttributeName时,我根本看不到任何文本。 如何解决此问题?有两

对于上述代码,我得到以下错误: 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[\u SwiftValue\u isDefaultFace]:未识别的选择器已发送到实例0x60800046930”

如果我将NSFontAttributeName更改为UIFont.boldSystemFont(大小:20),我可以看到粗体文本。 另外,在添加NSUnderlineStyleAttributeName时,我根本看不到任何文本。 如何解决此问题?

有两件事:

  • 您不能将可选值传递到需要非空
    id
    值的位置
属性:
参数在内部转换为
NSDictionary
,其值不能为零。但是
UIFont.init(名称:size:)
是一个可失败的初始值设定项,因此其返回类型是可选的。在Swift 3.0.0中,Swift在将其转换为非空
id
时生成类型为
\u SwiftValue
的实例。并将其存储在
属性中。这在Objective-C方面是完全无用的。(即使实际值不是零,也会发生这种情况。)

(Swift 3.0.1改进了这种情况的某些部分。)

  • 无法将Swift枚举传递到需要
    id
    值的位置
NSUnderlineStyle.byWord是一个Swift枚举。在Swift 3中,Swift在将其转换为
id
时生成类型为
\u SwiftValue
的实例

(Swift 3.0.1没有改善这种情况。)

要解决上述两个问题,您需要编写如下内容:

    let s = NSAttributedString(string: "Percentage", attributes: [NSFontAttributeName : UIFont(name : "Avenir Next Condensed", size : 20), NSUnderlineStyleAttributeName : NSUnderlineStyle.byWord])
    textView.attributedText = s
两件事:

  • 您不能将可选值传递到需要非空
    id
    值的位置
属性:
参数在内部转换为
NSDictionary
,其值不能为零。但是
UIFont.init(名称:size:)
是一个可失败的初始值设定项,因此其返回类型是可选的。在Swift 3.0.0中,Swift在将其转换为非空
id
时生成类型为
\u SwiftValue
的实例。并将其存储在
属性中。这在Objective-C方面是完全无用的。(即使实际值不是零,也会发生这种情况。)

(Swift 3.0.1改进了这种情况的某些部分。)

  • 无法将Swift枚举传递到需要
    id
    值的位置
NSUnderlineStyle.byWord是一个Swift枚举。在Swift 3中,Swift在将其转换为
id
时生成类型为
\u SwiftValue
的实例

(Swift 3.0.1没有改善这种情况。)

要解决上述两个问题,您需要编写如下内容:

    let s = NSAttributedString(string: "Percentage", attributes: [NSFontAttributeName : UIFont(name : "Avenir Next Condensed", size : 20), NSUnderlineStyleAttributeName : NSUnderlineStyle.byWord])
    textView.attributedText = s
let font=UIFont(名称:“Avenir Next Condensed”,大小:20)
返回零?尝试使用
AvenirNextCondensed Regular
代替名称(您必须使用PostScript名称)
let font=UIFont(名称:“Avenir Next Condensed”,大小:20)
返回零?尝试使用
AvenirNextCondensed Regular
代替名称(您必须使用PostScript名称)