如何在 swift 中单击按钮时更改 uiimage 的图像?

Posted

技术标签:

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

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

这是我的代码:

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.
    



这是我的用户界面:

【问题讨论】:

【参考方案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") 然后加一点解释。这需要更新......无论哪种方式都得到了回答。但我建议更新答案。

以上是关于如何在 swift 中单击按钮时更改 uiimage 的图像?的主要内容,如果未能解决你的问题,请参考以下文章

Swift:如何在单击提交按钮时更改 UIButton 图像

如何在单击按钮操作时更改图像

UITableView:单击按钮时如何动态更改单元格高度?迅速

如何在 Swift 中设置图像按钮

按钮图像不会改变

当他们在 Swift 中创建自己时如何更改 UILabel 的标题?