如何使用swift在Xcode中设置背景图像?

2020/12/01 02:31 · ios ·  · 0评论

如何使用Swift在Xcode 6中为主视图控制器设置背景图像?我知道您可以在助手编辑器中执行以下操作:

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = UIColor.yellowColor()
}

将背景设置为我的资产文件夹中的图像的代码是什么?

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png"))
}

我是iOS开发的初学者,所以我想分享本节中获得的全部信息。

首先从图像资产(images.xcassets)创建图像集。

根据文档,此处是创建背景图片所需的所有尺寸。

For iPhone 5:
   640 x 1136

   For iPhone 6:
   750 x 1334 (@2x) for portrait
   1334 x 750 (@2x) for landscape

   For iPhone 6 Plus:
   1242 x 2208 (@3x) for portrait
   2208 x 1242 (@3x) for landscape

   iPhone 4s (@2x)      
   640 x 960

   iPad and iPad mini (@2x) 
   1536 x 2048 (portrait)
   2048 x 1536 (landscape)

   iPad 2 and iPad mini (@1x)
   768 x 1024 (portrait)
   1024 x 768 (landscape)

   iPad Pro (@2x)
   2048 x 2732 (portrait)
   2732 x 2048 (landscape)

调用图像背景,我们可以使用此方法从图像资产调用图像,这UIImage(named: "background")是完整的代码示例

  override func viewDidLoad() {
          super.viewDidLoad()
             assignbackground()
            // Do any additional setup after loading the view.
        }

  func assignbackground(){
        let background = UIImage(named: "background")

        var imageView : UIImageView!
        imageView = UIImageView(frame: view.bounds)
        imageView.contentMode =  UIViewContentMode.ScaleAspectFill
        imageView.clipsToBounds = true
        imageView.image = background
        imageView.center = view.center
        view.addSubview(imageView)
        self.view.sendSubviewToBack(imageView)
    }
override func viewDidLoad() {

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

}

2020年5月20日更新:

旋转设备后,上面的代码段无法正常运行。这是可以根据屏幕尺寸(旋转后)拉伸图像的解决方案:

class ViewController: UIViewController {

    var imageView: UIImageView = {
        let imageView = UIImageView(frame: .zero)
        imageView.image = UIImage(named: "bg_image")
        imageView.contentMode = .scaleToFill
        imageView.translatesAutoresizingMaskIntoConstraints = false
        return imageView
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.insertSubview(imageView, at: 0)
        NSLayoutConstraint.activate([
            imageView.topAnchor.constraint(equalTo: view.topAnchor),
            imageView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            imageView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
            imageView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
        ])
    }
}

SWIFT 4

view.layer.contents = #imageLiteral(resourceName: "webbg").cgImage

您也可以尝试一下,这实际上是先前其他海报提供的答案的组合:

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

对于Swift 4

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

swift 4中的API背景图片(使用Kingfisher):

import UIKit
import Kingfisher

extension UIView {

func addBackgroundImage(imgUrl: String, placeHolder: String){
    let backgroundImage = UIImageView(frame: self.bounds)
    backgroundImage.kf.setImage(with: URL(string: imgUrl), placeholder: UIImage(named: placeHolder))
    backgroundImage.contentMode = UIViewContentMode.scaleAspectFill
    self.insertSubview(backgroundImage, at: 0)

}
}

用法:

someview.addBackgroundImage(imgUrl: "yourImgUrl", placeHolder: "placeHolderName")

XCode 12.2游乐场中的Swift 5.3

将光标#insertLiteral放在早期版本中的代码中。从顶部菜单中选择Editor->Insert Image Literal...并导航到文件。点击Open

该文件被添加到一个Playground Resource文件夹中,然后在以选定的任何视图位置运行该Playground时将显示该文件

如果文件已经在游乐场捆绑包中(例如/ Resources中),则可以将其直接拖到代码中的所需位置(将在其中用图标表示)。

cf. Apple帮助文档提供了有关此内容以及如何放置其他颜色和文件文字的详细信息。

本文地址:http://ios.askforanswer.com/ruheshiyongswiftzaixcodezhongshezhibeijingtuxiang.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!