簡體   English   中英

單擊按鈕更改背景圖像

[英]Change background image with button click

我可以這樣在viewDidLoad函數上更改背景圖片:

    let myBackgroundImage = UIImageView (frame: UIScreen.main.bounds)
    myBackgroundImage.image = UIImage(named: "wallpaper-1-iphone-8-plus.png")
    myBackgroundImage.contentMode = UIViewContentMode.scaleAspectFill
    self.view.insertSubview(myBackgroundImage, at: 0)

我想通過按鈕單擊執行相同的操作,如下所示:

    @IBAction func flip4btn5(_ sender: Any)
{
    let myBackgroundImage = UIImageView (frame: UIScreen.main.bounds)
    myBackgroundImage.image = UIImage(named: "wallpaper-2-iphone-8-plus.png")
    myBackgroundImage.contentMode = UIViewContentMode.scaleAspectFill
    self.view.insertSubview(myBackgroundImage, at: 0)
}

但它不會更改背景圖片。 為什么呢 你怎么看 ?
我正在使用Swift 4.1。

不要創建新圖像。 只需像這樣在按鈕操作中更改第一個UIImage的圖片即可:

myBackgroundImage.image = UIImage(named: "wallpaper-2-iphone-8-plus.png")

每次要更改背景圖像時,不要一直添加UIImageViews。

將UIImageView放在需要的視圖層次結構中,並保留對其的引用。 然后根據需要在其上設置image屬性。

class ViewController: UIViewController {

   @IBOutlet weak var backgroundImageView: UIImageView!

   override func viewDidLoad() {
        super.viewDidLoad()

        backgroundImageView.image = UIImage(named: "wallpaper-1-iphone-8-plus.png")
   }

   @IBAction func flip4btn5(_ sender: Any) {
       backgroundImageView.image = UIImage(named: "wallpaper-2-iphone-8-plus.png")
   }
}

您可以在情節提要中或在viewDidLoad中設置contentMode。 更新圖像后,無需保持設置。

let myBackgroundImage = UIImageView (frame: CGRect.zero)


override func viewDidLoad() {
    super.viewDidLoad()

    myBackgroundImage.image = UIImage(named: "wallpaper-1-iphone-8-plus.png")
    myBackgroundImage.contentMode = UIViewContentMode.scaleAspectFill
    self.view.addSubview(myBackgroundImage)

}

@IBAction func ButtonPressed(_ sender: Any) {

    myBackgroundImage.image = UIImage(named: "wallpaper-2-iphone-8-plus.png")

}

試試這個代碼,它工作正常。

class ViewController: UIViewController {

    var myBackgroundImage = UIImageView (frame: UIScreen.main.bounds);

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        myBackgroundImage.image = UIImage(named: "wallpaper-1-iphone-8-plus.png")
        myBackgroundImage.contentMode = UIViewContentMode.scaleAspectFill
        self.view.insertSubview(myBackgroundImage, at: 0)
    }

    @IBAction func flip4btn5(_ sender: UIButton) {
        myBackgroundImage.image = UIImage(named: "wallpaper-2-iphone-8-plus.png")    
    }    
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM