swift ios 为什么在这个例子中使用 didSet
swift ios why use didSet in this example
我试图理解为什么在这个例子中使用 didSet 。它来自显示图像的页面控制器(图像滑块)
代码:
import UIKit
class PageItemController: UIViewController {
// MARK: - Variables
var itemIndex: Int = 0
var imageName: String = "" {
didSet {
if let imageView = contentImageView {
imageView.image = UIImage(named: imageName)
}
}
}
@IBOutlet var contentImageView: UIImageView?
// MARK: - View Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
print(imageName)
contentImageView!.image = UIImage(named: imageName)
}
}
我已经尝试过相同的代码,但没有 didSet
,而且我没有注意到速度等方面的任何变化,那么为什么要使用它呢?
实际上,如果设置了 imageName
,didSet
将使用 imageName
字符串设置 uiimage。
如果您从任何其他视图分配 imageName 那么,您应该使用如下代码:
override func viewDidLoad() {
super.viewDidLoad()
}
如果您使用 didSet,您可以通过设置 imageName
来更改显示的图像。
而是使用这个:
let image = UIImage(named: "*Name of image in assets*")
并确保实际图像在项目资产中。
我试图理解为什么在这个例子中使用 didSet 。它来自显示图像的页面控制器(图像滑块)
代码:
import UIKit
class PageItemController: UIViewController {
// MARK: - Variables
var itemIndex: Int = 0
var imageName: String = "" {
didSet {
if let imageView = contentImageView {
imageView.image = UIImage(named: imageName)
}
}
}
@IBOutlet var contentImageView: UIImageView?
// MARK: - View Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
print(imageName)
contentImageView!.image = UIImage(named: imageName)
}
}
我已经尝试过相同的代码,但没有 didSet
,而且我没有注意到速度等方面的任何变化,那么为什么要使用它呢?
实际上,如果设置了 imageName
,didSet
将使用 imageName
字符串设置 uiimage。
如果您从任何其他视图分配 imageName 那么,您应该使用如下代码:
override func viewDidLoad() {
super.viewDidLoad()
}
如果您使用 didSet,您可以通过设置 imageName
来更改显示的图像。
而是使用这个:
let image = UIImage(named: "*Name of image in assets*")
并确保实际图像在项目资产中。