【问题标题】:How to set background image in swift?如何快速设置背景图像?
【发布时间】:2016-12-02 09:35:03
【问题描述】:

我正在尝试以 swift 语言将搁浅图像设置到我的 ViewController。

我正在使用以下代码:

self.view.backgroundColor = UIColor(patternImage: UIImage(named:”bg.png")!)

但应用程序正在崩溃。它显示的错误类似于

“致命错误:在展开 Optional 时意外发现 nil 价值”(因为“!”)

【问题讨论】:

  • 删除“!”符号或检查 nil 值以设置 backgroundImage
  • 因为找不到图像,它的 nil 和您尝试强制解开 nil 值。

标签: ios swift uiimage


【解决方案1】:

因为图像“bg.png”不存在而引发该错误。通常,当您将图像导入 Assets.xcassets 文件夹时,会删除文件扩展名。所以尝试以下方法:

self.view.backgroundColor = UIColor(patternImage: UIImage(named:"bg")!)

您会注意到背景看起来不像预期的那样,您需要按照here 的说明进行以下操作:

     UIGraphicsBeginImageContext(self.view.frame.size)
    UIImage(named: "bg")?.draw(in: self.view.bounds)
    let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext()
    self.view.backgroundColor = UIColor(patternImage: image)

【讨论】:

【解决方案2】:

试试这个 Swift4:

let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "bg.png")
backgroundImage.contentMode = UIViewContentMode.scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)

【讨论】:

    【解决方案3】:

    swift3 更新:

        UIGraphicsBeginImageContext(self.frame.size)
    
        UIImage(named: "bg").draw(in: self.bounds)
    
        let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
    
        UIGraphicsEndImageContext()
    
        backgroundColor = UIColor(patternImage: image)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 2011-12-15
      • 2014-06-23
      • 1970-01-01
      相关资源
      最近更新 更多