swift - 是否可以制作可重用的代码来添加背景图像?如果是这样,怎么做?
问题描述
我正在研究 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 中调用该函数。我知道我可以在属性检查器中设置背景图像,但我想知道如何编写代码。
解决方案
您可以使用许多方法。一种是将方法放在UIViewController
扩展中并在UIViewController
要添加的子类中调用它。
extension UIViewController {
func setBackground() {
//...
}
}
然后:
override func viewDidLoad() {
super.viewDidLoad()
setBackground()
}
推荐阅读
- c# - 如何从 blazor(服务器端)Web 应用程序获取访问令牌?
- python - 当日期时间戳在行中并应用条件时,如何计算熊猫数据框中的时间差?
- javascript - NodeJS Docusign eg-01-node-jwt- API 问题状态 404
- android - 旋转 RecyclerView 90 度时出现滚动问题
- python - 如何在变量中指定数据框的名称(字符串、dict.item)
- bash - Bash 脚本 - 开关
- c# - 在 ASP.Net C# 中的服务器上托管应用程序后,日期函数不起作用
- python - 天真的分类器使用 dict 的键来遍历 df 的列?
- php - 在下面的查询中添加 Custom Guard admin 以获取 Admin ID 值
- javascript - 如何从 Javascript/Google App 脚本中的另一个函数调用数组