2016-09-06 2 views
3

Недавно я перешел из Swift 2 в Swift 3, и я застрял на одной части. В моем AppDelegate я установил настройки по умолчанию для UINavigationBar, как указано ниже. Проблема, с которой я сталкиваюсь, заключается в том, что setBackgroundImage больше не распознается в Swift 3, и я не могу найти альтернативы.Swift 3: Как настроить UINavigationBar setBackgroundImage в AppDelegate

Неужели кто-то имел такую ​​же проблему и смог ее решить?

let turquoiseBackgroundImage:UIImage = UIImage(named: "navigationBarTurqoise")! 


    **// TODO Below is not working with Swift 3 
    UINavigationBar.appearance().setBackgroundImage(turquoiseBackgroundImage, forBarPosition: .Default)** 


    // Set up Back button to be white in Navigation bar 
    UINavigationBar.appearance().barStyle = UIBarStyle.default 
    UINavigationBar.appearance().tintColor = UIColor.white 

    // Font Name and Size of Title in Navigation Bar 
    if let font = UIFont(name: "TitilliumWeb-Light", size: 20) { 
     UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : font, NSForegroundColorAttributeName : UIColor.white] 
    } 

    // Remove hairline between navigation bar and anything below such as search bar 
    UINavigationBar.appearance().shadowImage = UIImage() 

    // Set up status bar (battery, time, etc.) to white 
    UIApplication.shared.statusBarStyle = .lightContent 
+0

Swift декларации 'Func setBackgroundImage (_ изображение: UIImage ?, для государства: UIControlState)' https://developer.apple.com/reference/uikit/uibutton/1624016-setbackgroundimage, поэтому попробуйте 'setBackgroundImage (turquoiseBackgroundImage, для: .default) *' –

+0

** Подсказка: ** В следующий раз просто позвольте Xcode автоматически завершить его для вас. –

+0

Да, я попробовал автозаполнение, однако функции UITAVBackgroundImage вообще нет в UINavigationBar.appearance() .. Существует функция setBackgroundImage под UINavigationBar напрямую, но в качестве аргумента она принимает 10 UINavigationBar. Делает не имеет смысла? UINavigationBar.setBackgroundImage (<# T ## UINavigationBar #>) –

ответ

5
UINavigationBar.appearance().setBackgroundImage(turquoiseBackgroundImage, forBarPosition: .Default) 

переписан код, как этот

UINavigationBar.appearance().setBackgroundImage(turquoiseBackgroundImage, for: .default) 
Смежные вопросы