String NSFontAttributeName已更改为字符串
我正在尝试正确设置导航栏的样式,我需要将字体更改为helvetica neue,大小点为19。我曾经使用过这段代码,但我注意到现在不起作用:String NSFontAttributeName已更改为字符串,string,swift,uinavigationbar,String,Swift,Uinavigationbar,我正在尝试正确设置导航栏的样式,我需要将字体更改为helvetica neue,大小点为19。我曾经使用过这段代码,但我注意到现在不起作用: navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 19)] 发生这种情况是因为NSFontAttributeName的类型已更改为String,我已尝试使用 na
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 19)]
发生这种情况是因为NSFontAttributeName的类型已更改为String,我已尝试使用
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: "HelveticaNeue-Light, 19"]
但是编译器继续给我一个与字体中的点大小相关的错误,我如何修复它?构造函数返回一个可选(
UIFont?
)你必须打开它才能使用。添加代码>如果您确定有有效的字体名称:
Swift 4.2:
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: UIFont(name: "HelveticaNeue-Light", size: 19)!]
navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: UIFont(name: "HelveticaNeue-Light", size: 19)!]
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 19)!]
Swift 4:
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: UIFont(name: "HelveticaNeue-Light", size: 19)!]
navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: UIFont(name: "HelveticaNeue-Light", size: 19)!]
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 19)!]
Swift 3:
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: UIFont(name: "HelveticaNeue-Light", size: 19)!]
navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: UIFont(name: "HelveticaNeue-Light", size: 19)!]
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 19)!]
注意:如果在代码中使用静态名称设置字体,则在验证使用的字体名称有效后,强制展开是安全的。如果您是从外部源(用户或服务器)获取字体名称,则需要使用可选绑定,例如If let font=UIFont(…
或guard let font=UIFont)(…
在使用前安全地展开字体。如果不推荐使用Swift 4NSFontAttributeName,则可以使用NSAttributedStringKey值设置属性
if let fontStyle = UIFont(name: "HelveticaNeue-Light", size: 19) {
navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: fontStyle]
}
使用Swift 4.2NSAttributedStringKey
更改为NSAttributedStringKey.Key
if let fontStyle = UIFont(name: "HelveticaNeue-Light", size: 19) {
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: fontStyle]
}
有关NSAttributedStringKey的更多选项,您可以访问此链接
在Swift 4.2中,NSAttributedStringKey已重命名为NSAttributedString.Key
if let fontStyle = UIFont(name: "HelveticaNeue-Light", size: 19) {
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: fontStyle]
}
谢谢!正是我想要的!