- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
let s = NSAttributedString(string: "Percentage", attributes: [NSFontAttributeName : UIFont(name : "Avenir Next Condensed", size : 20), NSUnderlineStyleAttributeName : NSUnderlineStyle.byWord])
textView.attributedText = s
上面的代码出现以下错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[_SwiftValue _isDefaultFace]:无法识别的选择器发送到实例 0x608000046930”
如果我将 NSFontAttributeName 更改为 UIFont.boldSystemFont(ofSize: 20),我可以看到粗体文本。同样在添加 NSUnderlineStyleAttributeName 时,我根本看不到任何文本。我该如何解决这个问题?
最佳答案
两件事:
id
值的地方。attributes:
参数在内部转换为 NSDictionary
,其值不能为 nil。但是 UIFont.init(name:size:)
是一个可失败的初始化器,所以它的返回类型是 Optional。在 Swift 3.0.0 中,Swift 在将其转换为非 Null id
时会生成类型 _SwiftValue
的实例。并将其存储在 attributes
中。这在 Objective-C 方面完全没用。 (即使实际值不为零,也会发生这种情况。)
(Swift 3.0.1 改善了这种情况的某些部分。)
id
值的地方。NSUnderlineStyle.byWord
是一个 Swift 枚举。在 Swift 3 中,Swift 在将其转换为 id
时生成一个 _SwiftValue
类型的实例。
(Swift 3.0.1 没有改善这种情况。)
要解决上面两个问题,你需要这样写:
if let font = UIFont(name: "Avenir Next Condensed", size: 20) {
let s = NSAttributedString(string: "Percentage", attributes: [NSFontAttributeName: font, NSUnderlineStyleAttributeName: NSUnderlineStyle.byWord.rawValue])
textView.attributedText = s
}
关于ios - 无法添加字体为 Avenir Next Condensed 的属性字符串 [Swift 3],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39956195/
我在我的网站上使用了各种 Avenir 字体。在 Linux、Mac、Ipad、Iphone、Andriod Phone 中打开时,它在浏览器上看起来不错。但是在 Windows 中的任何浏览器上打开
在 iOS Safari 中有一个奇怪的行为,Avenir 字体的特定字体粗细为 900 会在字符 fi 的右侧产生一个额外的空间。 我尝试使用对应于该字体粗细的“Avenir Heavy”,但问题仍
这个问题在这里已经有了答案: How can I use custom fonts on a website? [duplicate] (5 个答案) 关闭 8 年前。 我在标题中使用 CSS,其中
我正在尝试使用 100 字重的 Avenir Next Condensed 字体(非常轻)。它在我尝试过的所有浏览器上都运行良好,除了 iOS,它显示为斜体。有什么解决办法吗? 这是一个测试页面,当在
我目前正在用 HTML5 编写网页,试图获取 Avenir Black 作为文本 block 的字体。但是,似乎每次我将其定义为字体系列时,它都不起作用,而是显示默认字体。现在我真的不想修改 CSS
let s = NSAttributedString(string: "Percentage", attributes: [NSFontAttributeName : UIFont(name : "A
是否有办法为项目或应用程序委托(delegate)文件中存在的所有按钮和标签设置 Avenir 字体。我想要一个通用的地方,我可以在其中设置一次字体,以便它在所有 Storyboard 中都发生变化。
如标题所示,我目前对 Chrome 和 Firefox 中文本的呈现方式有疑问。 Safari 目前尊重我对 Avenir Next 的大胆设计,但 Chrome 或 Firefox 都不是。 无论使
如标题所示,我目前对 Chrome 和 Firefox 中文本的呈现方式有疑问。 Safari 目前尊重我对 Avenir Next 的大胆设计,但 Chrome 或 Firefox 都不是。 无论使
有没有办法指定在像 Avenir Next 这样的字体中使用哪些粗体或斜体变体? 这是一个例子。默认情况下,Avenir Next 会选择 Avenir Next Bold 作为粗体,但我希望它改用
我是一名优秀的程序员,十分优秀!