每次点击按钮都可以更改背景图像吗?

时间:2016-11-24 18:28:06

标签: ios swift xcode background-image

我已经检查了文档并成功添加了图片作为背景,但是,我已经无法更改它了。

我想要做的是每次单击按钮时更改背景图像。在线查看我发现了有关如何更改按钮背景的信息,但没有找到实际背景信息。

import UIKit

class ViewController: UIViewController {

    var arrays = ["A", "b", "C", "D", "E", "F"]
    var currentIndex = 0
    var image = UIImage()
    var image3 = UIImage()

    @IBOutlet weak var ChangeText: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        ChangeText.text = arrays[currentIndex]

        self.view.backgroundColor = UIColor(patternImage: UIImage(named: "LaunchImage")!)
        self.view.backgroundColor = UIColor(patternImage: UIImage(named: "Image2")!)
    }

    @IBAction func Button() {
        currentIndex += 1

        if currentIndex == arrays.count {
            currentIndex = 0
        }
        ChangeText.text = arrays[currentIndex]

        if image == UIImage(named: "Image2") {
            print("Image")
        }
        self.view.backgroundColor = UIColor(patternImage: UIImage(named: "Image2")!)
    }
}

也可以强制解开UIImage我知道力量展开是不受欢迎的,但我知道我肯定会有背景图像。

我也尝试了这个,但我有同样的问题,它不会多次改变背景图像。

```

    @IBAction func Button() {
        currentIndex += 1

        if currentIndex == arrays.count {
            currentIndex = 0
        }
        ChangeText.text = arrays[currentIndex]

        if image == UIImage(named: "Image2") {
            print("Image")
        }
        self.view.backgroundColor = UIColor(patternImage: UIImage(named: "Image2")!)

        if image3 == UIImage(named: "Image3") {
            print("Image")
        }
        self.view.backgroundColor = UIColor(patternImage: UIImage(named: "Image3")!)
    }
}

```

3 个答案:

答案 0 :(得分:0)

我不确定问题出在哪里,因为你没有向我们展示你已经尝试过的东西。

您用于设置背景视图的相同代码可以在任何地方使用,并且可以随时使用

    if <some condition>
    {
        self.view.backgroundColor = UIColor(patternImage: UIImage(named: "one")!)
    }
    if <another condition>
    {
        self.view.backgroundColor = UIColor(patternImage: UIImage(named: "two")!)
    }

答案 1 :(得分:0)

我不认为你的问题与按钮有关,就像一般概念一样,如条件。正如罗素回答的那样,你只需要条件。您已经证明图像加载是可行的,所以现在您只需要再次执行此操作&#34;与不同的形象。

我有一些提示。首先,不要用名词来命名函数,比如ButtonTapped或类似名称。按钮,在swift 3中,将是一个UIButton,所以无论如何它都不会像你期望的那样工作。

我意识到你并没有改变Button的背景,但我认为你是。如果你是,Buttons不会表现得像图像和视图。他们有'&#34;背景状态&#34;和&#34;州和#34;的标题。哎呀,你甚至无法使用Core Animation扩展它们,你必须扩展它们的超级视图才能看到它。虽然我现在暂时停止使用Core Animation。

你想做的是罗素所说的,但尝试一些简单的事情。像:

var switch:bool = true;

func buttonTapped() {
   if (switch == true) {
     self.view.backgroundColor = UIColor(patternImage: UIImage(named: "one");
   } else {
     self.view.backgroundColor = UIColor(patternImage: UIImage(named: "two");
   }
   switch = !switch;
}

我会首先做一些简单的事情来证明它的工作 self.view.backgroundColor = UIColor.blackColor();和橙色/白色的东西。

你是否应该强行打开包装,获得良好的命名习惯,理解结构等......我建议学习C ++。一个简单的C ++教程将涵盖比swift或iPhone编程的任何初学者书更多的结构和模块化。此外,所有其他语言只是其功能的一小部分,因此您可以超级快速地选择其他所有语言。

答案 2 :(得分:0)

用以下代码替换您的代码:

           @IBAction func Button() {
            currentIndex += 1

            if currentIndex == arrays.count {
                currentIndex = 0
            }
            ChangeText.text = arrays[currentIndex]

            if image == UIImage(named: "Image2")
            {
                self.view.backgroundColor = UIColor(patternImage: UIImage(named: "Image3")!)
                return;
            }
            else if image3 == UIImage(named: "Image3")
            {
                self.view.backgroundColor = UIColor(patternImage: UIImage(named: "Image4")!)
                return;
            }
            else if image == UIImage(named: "Image")
            {
                self.view.backgroundColor = UIColor(patternImage: UIImage(named: "Image2")!)
                return;
            }
            else
            {
                self.view.backgroundColor = UIColor(patternImage: UIImage(named: "Image")!)
                return;
            }
        }