我可以像这样在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。
发布于 2018-04-17 11:03:37
试试这段代码,它运行得很好。
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")
}
}发布于 2018-04-17 11:03:14
不要创造新的形象。只需更改按钮中第一个UIImage的图片,如下所示:
myBackgroundImage.image = UIImage(named: "wallpaper-2-iphone-8-plus.png")发布于 2018-04-17 10:57:43
不要每次想要更改背景图像时都添加UIImageViews。
将UIImageView放在需要它的视图层次结构中,并保持对它的引用。然后根据需要在其上设置图像属性。
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。您不需要在更新图像之后继续设置它。
https://stackoverflow.com/questions/49876214
复制相似问题