-1

我试图理解为什么在这个例子中使用了 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速度等方面的任何变化,那么为什么要使用它呢?

4

3 回答 3

1

如果已设置,实际上将使用字符串didSet设置 uiimage 。如果您从任何其他视图分配 imageName ,您应该使用如下代码:imageNameimageName

override func viewDidLoad() {
        super.viewDidLoad()
    }
于 2016-05-19T14:09:40.407 回答
0

如果您使用 didSet,您可以通过设置更改显示的图像imageName

于 2016-05-19T14:11:25.590 回答
0

而是使用这个: let image = UIImage(named: "*Name of image in assets*") 并确保实际图像在项目资产中。

于 2016-05-19T14:11:44.323 回答