在iOS中使用导航栏的背景图像时应用程序崩溃

时间:2016-09-23 04:05:40

标签: ios swift uinavigationcontroller uinavigationbar

我正在使用导航栏的背景图片。它在呈现视图控制器时崩溃我的应用程序。我也有所有视图控制器视图的背景图像。 我正在使用像这样的实现

func setNavigationAppearance(tintColor : UIColor, barTintColor : UIColor?) {
    let navigationBarAppearace = appDelegateObj.navigationController!.navigationBar

    navigationBarAppearace.tintColor = tintColor
    navigationBarAppearace.barTintColor = barTintColor
    navigationBarAppearace.translucent = false

    //navigationBarAppearace.
    //Settign the Custome Font and TextColor

    if let font = UIFont(name: FontCustom.Regular, size: 17) {
        UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: font ,NSForegroundColorAttributeName : tintColor]
    }
}

我用这张图片调用这个方法 let navigationColor:UIColor = UIColor(patternImage:UIImage(named:AppImagesName.PatternRed)!)

我正在收到这些崩溃日志。

  

由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:'在这种情况下仅支持RGBA或白色空格

我用Google搜索了这一切,都在说删除背景图片或者这是iOS错误。

所以请告诉我可能的解决方案。

1 个答案:

答案 0 :(得分:1)

要将背景图像设置为NavigationBar,请使用以下代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        if let myImage = UIImage(named: "navBarImage.jpg"){
            UINavigationBar.appearance().setBackgroundImage(myImage, for: .default)
        }


        return true
    }

截图示例:

enter image description here

要测试样本,请查看我的GitHub链接:

https://github.com/k-sathireddy/NavigationBarBackgroundImageSample