首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击按钮更改背景图像

单击按钮更改背景图像
EN

Stack Overflow用户
提问于 2018-04-17 10:53:04
回答 4查看 661关注 0票数 0

我可以像这样在viewDidLoad功能上更改背景图像:

代码语言:javascript
复制
    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)

我想做同样的动作,按一下按钮,如下所示:

代码语言:javascript
复制
    @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。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-04-17 11:03:37

试试这段代码,它运行得很好。

代码语言:javascript
复制
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")    
    }    
}
票数 0
EN

Stack Overflow用户

发布于 2018-04-17 11:03:14

不要创造新的形象。只需更改按钮中第一个UIImage的图片,如下所示:

代码语言:javascript
复制
myBackgroundImage.image = UIImage(named: "wallpaper-2-iphone-8-plus.png")
票数 1
EN

Stack Overflow用户

发布于 2018-04-17 10:57:43

不要每次想要更改背景图像时都添加UIImageViews。

将UIImageView放在需要它的视图层次结构中,并保持对它的引用。然后根据需要在其上设置图像属性。

代码语言:javascript
复制
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")
   }
}

您可以在故事情节提要或contentMode中设置viewDidLoad。您不需要在更新图像之后继续设置它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49876214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档