【问题标题】:how to change uiimage's image on button click in swift?如何在 swift 中单击按钮时更改 uiimage 的图像?
【发布时间】:2014-10-04 08:52:04
【问题描述】:

我正在尝试通过快速单击按钮来更改 uiimage 控件的包含图像。为此,我编写了一个简单的“猜猜我举起多少根手指”的应用程序。我已经阅读了一些 stackoverflow 文章,但无法解决问题。下面你可以看到我的代码和我的用户界面。点击后如何更改图片?

这是我的代码:

import UIKit

class ViewController: UIViewController {

    @IBOutlet var myImageView: UIImageView!
    @IBOutlet var inputField: UITextField!
    @IBAction func clickedGuessButtonAction(sender: AnyObject) {
        println("Guess button clicked")
        var randomX = Int(arc4random()%6)
        println("randomX = \(randomX)")
        var guess = inputField.text.toInt();

        let image0 = UIImage(named: "images/qm.jpg")
        let image1 = UIImage(named: "images/tick.jpg")
        let image2 = UIImage(named: "images/cross.jpg")

        if((inputField.text) != nil){
            if(guess == randomX){
                println("correct")
                myImageView.image=UIImage(named: "tick.jpg") // THIS IS NOT WORKING
                myImageView.image=image1                     // THIS IS NOT WORKING TOO
                inputField.resignFirstResponder();// hides keyboard
            }
            else
            {
                println("wrong")
                myImageView.image=UIImage(named: "cross.jpg")
                inputField.resignFirstResponder();//hides keyboard
            }
        }
        else{
            println("invalid input. requires integer only")
            inputField.resignFirstResponder();// hides keyboard
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

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


}

这是我的用户界面:

【问题讨论】:

    标签: ios swift uiimage


    【解决方案1】:

    您无需指定资产目录的名称或图像文件的扩展名。尝试删除那些。例如,

    myImageView.image = UIImage(named: "tick")
    

    【讨论】:

    • 从 Xcode 9 beta 3 上的 Swift 4 开始,我们现在是否需要包含扩展,例如“.jpeg”?
    • @AllisterBah 不。无需指定文件扩展名。
    【解决方案2】:

    这可能取决于您使用的 Xcode 版本。对我来说,以下工作:

    ImageView.image = UIImage(named: "Elephants.jpg")
    

    【讨论】:

    • 显然这对问题的作者不起作用。您能否详细说明这可能适用于哪个版本(例如您使用的是什么版本)?
    【解决方案3】:

    在斯威夫特中:

    myImageView = "nameOfImage";
    

    【讨论】:

    • 那是轻量级的 swift 伙伴。你甚至没有调用 UIImage 的类型。
    • 改成这样:myImageView: UIImage = UIImage(name: "nameOfImage") 然后加一点解释。这需要更新......无论哪种方式都得到了回答。但我建议更新答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多