首页 > 解决方案 > 是否可以制作可重用的代码来添加背景图像?如果是这样,怎么做?

问题描述

我正在研究 Swift,我想知道如何以编程方式将相同的背景图像添加到不同的视图控制器中。

override func viewDidLoad() {
    super.viewDidLoad()
    
    setBackground()
}


func setBackground() {
    view.addSubview(backgroundImageView)
    backgroundImageView.translatesAutoresizingMaskIntoConstraints = false
    backgroundImageView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
    backgroundImageView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    backgroundImageView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
    backgroundImageView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
    
    backgroundImageView.image = UIImage(named: K.imageForFirstScreen)
    view.sendSubviewToBack(backgroundImageView)
}

现在,我在每个视图控制器中都创建了 setBackground() 函数,因为我想在多个视图控制器上显示相同的背景图像,并且每次都在 viewDidload 中调用该函数。所以,我想知道是否有办法在某处声明 setBackground 函数,我可以在 viewDidLoad 中调用该函数。我知道我可以在属性检查器中设置背景图像,但我想知道如何编写代码。

标签: swiftxcodeprogrammatically

解决方案


您可以使用许多方法。一种是将方法放在UIViewController扩展中并在UIViewController要添加的子类中调用它。

extension UIViewController {
    func setBackground() {
        //...
    }
}

然后:

override func viewDidLoad() {
    super.viewDidLoad()
    
    setBackground()
}

推荐阅读