2016-11-27 5 views
3

Как установить фоновое изображение для этих конкретных настроек? iOS10 и XCode8.1? Я попробовал все ниже:NavigationBar background image for iOS 10 XCode 8.1 Swift 3.0

UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBg")!.resizableImage(withCapInsets: UIEdgeInsetsMake(0, 0, 0, 0), resizingMode: .stretch), for: .default) 
    UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBg")! , for: .any, barMetrics: .default) 
    UINavigationBar.appearance().setBackgroundImage(UIImage(named: "navigationBg")! , for: .default) 

Я могу установить цвет панели навигации с помощью раскадровки, но не в состоянии установить изображение.

ответ

7

Попытка установки свойства "self.navigationItem.titleView"

Ссылка: how-to-put-an-image-as-the-navigation-bar-title

Update:

Попробуйте это, вместо того, чтобы в UINavigationBar()

let navBackgroundImage:UIImage! = UIImage(named: "<navigationBarImage>") 
self.navigationController?.navigationBar.setBackgroundImage(navBackgroundImage, 
                  for: .default) 
+0

Я использую это для заголовка изображения навигационной панели, но не для фона. Я попытаюсь объединить оба изображения и использовать этот метод. Спасибо – Husyn

+0

Нет, это не решение. Он просто помещает изображение в центр навигационной панели. вы не можете настроить изображение на всю навигационную панель. – Husyn

3

Чтобы установить фоновое изображение NavigationBar, вы можете написать это:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(named:"pattern.png"), 
                   for: .default) 
3

Для установки фонового изображения для всей панели навигации используйте этот CDE в стремительной 3.0

UINavigationBar.appearance().setBackgroundImage(UIImage(named: "Exam-104")!.resizableImage(withCapInsets: UIEdgeInsetsMake(0, 0, 0, 0)), for: .default) 

Navigation bar image

Надеется, что это поможет.

1

XCode 8,1 Swift 3,0 IOS 10

от компании Apple документации:

Вы можете установить фоновое изображение для пользовательского панели навигации. Вы можете сделать это, используя setBackgroundImage:forBarMetrics:. Обратите внимание, что вы должны указывать метрику бара, потому что в навигационных полосах разные размеры на разных устройствах и ориентациях.

let image = UIImage(named: "navigationBg")! 
if let navigationController = self.navigationController { 
    navigationController.navigationBar.setBackgroundImage(image, for: .default) 
} 

Ссылка: Navigation Bars

5

Вот код, который отлично работает для меня в Swift 3.
Поместите это в didFinishLaunchingWithOptions.

let image = bg_banner // let image = #imageLiteral(resourceName: "bg_banner") 
UINavigationBar.appearance().setBackgroundImage(image.resizableImage(withCapInsets: UIEdgeInsetsMake(0, 0, 0, 0), resizingMode: .stretch), for: .default) 

И вот результат, который я получил. enter image description here