Подтвердить что ты не робот

Изменение titleTextAttribute в быстром

Каждый раз, когда я обновляю xcode, я не могу изменить titleTextAttribute. Теперь, когда я использую следующий код, я получаю эту ошибку:

не удалось найти инициализацию перегрузки, которая принимает предоставленные аргументы

Код в 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)
4b9b3361

Ответ 1

Было последнее изменение, так что 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, NSForegroundColorAttributeName:UIColor.whiteColor()], forState: UIControlState.Normal)

Ответ 2

Для Swift 3 вы можете попробовать следующее:

UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]

Ответ 3

    if let navFont = UIFont(name: "HelveticaNeue-Bold", size: 30.0) {
        let navBarAttributesDictionary: [NSObject: AnyObject]? = [
            NSForegroundColorAttributeName: UIColor.blackColor(),
            NSFontAttributeName: navFont
        ]
        navigationController?.navigationBar.titleTextAttributes = navBarAttributesDictionary
    }

Ответ 4

Swift 4:

if let navFont = UIFont(name: "Futura", size: 18) {
   let navBarAttributesDictionary: [NSAttributedStringKey: Any] = [
   NSAttributedStringKey(rawValue: NSAttributedStringKey.foregroundColor.rawValue): UIColor(netHex: Colors.BabyBlue.rawValue),
   NSAttributedStringKey(rawValue: NSAttributedStringKey.font.rawValue): navFont ]
   UINavigationBar.appearance().titleTextAttributes = navBarAttributesDictionary
}