ios – 在swift中更改titleTextAttribute

前端之家收集整理的这篇文章主要介绍了ios – 在swift中更改titleTextAttribute前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
自从我更新 xcode以来,我似乎无法改变titleTextAttribute.现在当我使用以下代码我得到这个错误

could not find an overload init that accepts this supplied arguments

appDelegate中的代码

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: "Ubuntu",size: 17),NSForegroundColorAttributeName:UIColor.whiteColor()]
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Ubuntu-Light",size: 15),NSForegroundColorAttributeName:UIColor.whiteColor()],forState: UIControlState.Normal)

解决方法

最近有一个变化,所以UIFont(name:size :)返回一个可选的UIFont实例.你需要解开它们才能使它工作.使用!是最简单的方法,但如果字体不在系统上,会让您崩溃.尝试像:
let navbarFont = UIFont(name: "Ubuntu",size: 17) ?? UIFont.systemFontOfSize(17)
let barbuttonFont = UIFont(name: "Ubuntu-Light",size: 15) ?? UIFont.systemFontOfSize(15)

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: navbarFont,NSForegroundColorAttributeName:UIColor.whiteColor()]
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: barbuttonFont,forState: UIControlState.Normal)

猜你在找的iOS相关文章