Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过单击-XCode 6 Swift更改UIButton的图像_Xcode_Swift - Fatal编程技术网

通过单击-XCode 6 Swift更改UIButton的图像

通过单击-XCode 6 Swift更改UIButton的图像,xcode,swift,Xcode,Swift,我只是想让它成为这样,当我点击一个UIButton,它当前显示的是一个贝壳的图像,这个图像会变成其他的东西,在这个例子中,一枚硬币。 这是我迄今为止所尝试的,但没有取得任何成功。我无法为斯威夫特做任何事情。谢谢 import UIKit class ViewController: UIViewController { @IBOutlet weak var lblOutput: UILabel! @IBOutlet weak var lblWin: UILabel! @IBOutlet wea

我只是想让它成为这样,当我点击一个UIButton,它当前显示的是一个贝壳的图像,这个图像会变成其他的东西,在这个例子中,一枚硬币。 这是我迄今为止所尝试的,但没有取得任何成功。我无法为斯威夫特做任何事情。谢谢

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var lblOutput: UILabel!
@IBOutlet weak var lblWin: UILabel!
@IBOutlet weak var lblLost: UILabel!
@IBOutlet weak var lblWinsAmt: UILabel!
@IBOutlet weak var lblLossesAmt: UILabel!



let coin = UIImage(named: "penny_head") as UIImage;


override func viewDidLoad() {
    super.viewDidLoad()
    //imgShell1.hidden = true //doesnt work
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


@IBAction func btnStart(sender: UIButton) {

}

@IBAction func btnShell1(sender: UIButton) {

    sender.setImage(coin,forState: UIControlState.Highlighted);
}

要在点击时永久更改按钮图像,您必须使用.Normal enum大小写,而不是.not.Highlighted作为控件状态:

sender.setImage(coin,forState: UIControlState.Normal)

将图像设置为.Highlighted(突出显示)状态会使新图像仅在按钮处于该状态时(即点击按钮时)显示。

要永久更改点击时的按钮图像,您必须使用.Normal enum(正常枚举)大小写,而不是.Highlighted(突出显示)控件状态:

sender.setImage(coin,forState: UIControlState.Normal)

将图像设置为.Highlighted(突出显示)状态会使新图像仅在按钮处于该状态时出现,即在点击按钮时出现。

设置控件的方式不正确。假设您有一个名为btnShell的按钮属性,并且它是您要设置的按钮,请将viewDidLoad方法更改为:

override func viewDidLoad()
{
    super.viewDidLoad()

    btnShell.setImage(imgShell1, forState:.Normal);
    btnShell.setImage(coin, forState:.Highlighted);
}
然后从操作方法中删除setImage:forState:调用:

@IBAction func btnShell1(sender: UIButton) {
    sender.setImage(coin,forState: UIControlState.Highlighted);
}

您设置控件的方式不正确。假设您有一个名为btnShell的按钮属性,并且它是您要设置的按钮,请将viewDidLoad方法更改为:

override func viewDidLoad()
{
    super.viewDidLoad()

    btnShell.setImage(imgShell1, forState:.Normal);
    btnShell.setImage(coin, forState:.Highlighted);
}
然后从操作方法中删除setImage:forState:调用:

@IBAction func btnShell1(sender: UIButton) {
    sender.setImage(coin,forState: UIControlState.Highlighted);
}

如果您希望永久更改UIButton的背景图像,则必须使用Antonio的方法:

sender.setImage(coin,forState: UIControlState.Normal)
点击按钮时,这不会更改UIKit的默认高亮显示。如果您不希望按钮在触摸时高亮显示,或者在不同的状态下具有不同的外观,那么最好使用UIImageView

在viewDidLoad中:

更改图像的功能:

func changeImage(recognizer: UITapGestureRecognizer){
    self.imgView?.image = imgTwo
}

如果您希望永久更改UIButton的背景图像,则必须使用Antonio的方法:

sender.setImage(coin,forState: UIControlState.Normal)
点击按钮时,这不会更改UIKit的默认高亮显示。如果您不希望按钮在触摸时高亮显示,或者在不同的状态下具有不同的外观,那么最好使用UIImageView

在viewDidLoad中:

更改图像的功能:

func changeImage(recognizer: UITapGestureRecognizer){
    self.imgView?.image = imgTwo
}
您也可以使用isSelected

您也可以使用isSelected


您想在按下按钮时更改图像,只要它保持在该状态,或者您想在不再按下按钮时用新图像替换图像?这是我看到您发布的第二个关于UIButton是如何工作的误解的问题。通过阅读UIControl和UIButton文档,您可以极大地帮助自己。谢谢!你所有的建议对我来说都很有帮助。你想在按下按钮时改变图像,只要它保持在那种状态,或者你想用一个新的图像替换图像,即使不再按下按钮?这是我看到你发布的第二个问题,关于UIButton是如何工作的误解。通过阅读UIControl和UIButton文档,您可以极大地帮助自己。谢谢!你所有的建议都非常有助于我找到需要的地方。