【问题标题】:How do I change the image of a button when tapped - Swift点击时如何更改按钮的图像 - Swift
【发布时间】:2015-09-15 11:58:34
【问题描述】:

我正在尝试更改点击时按钮的图像(我希望将播放更改为暂停的音频播放器)。到目前为止,我只设法在按住按钮时更改它,然后在释放时更改回来。

我尝试使用 Selected 而不是 Highlighted,但这不起作用。 (初始图像在属性检查器中设置)。这就是我所拥有的-

 @IBAction func buttonTapped(sender: AnyObject) {
           ColourTestButton.setImage(UIImage(named: "blank-purple.jpg"), forState:.Highlighted) 
        }

我意识到突出显示意味着尽管在另一个我希望它改回的图像上(在表格视图的单元格中)它仍然存在,这就是为什么我认为它适用于这个。我必须在此处做什么才能使其保持更改为新图像?

【问题讨论】:

    标签: ios image swift button


    【解决方案1】:

    我认为您需要此代码:

    @IBAction func buttonTapped(sender: AnyObject) {
           let image = UIImage(named: "blank-purple.jpg") as UIImage!
           let playButton  = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
           ColourTestButton.setImage(image, forState: .Normal)
    }
    

    更新:

    如果你想改变图像,比如播放/暂停,那么你可以这样做:

    var pressed = false
    @IBAction func pressed(sender: AnyObject) {
    
        if !pressed {
            let image = UIImage(named: "pauseImage.png") as UIImage!
            let playButton  = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
            btn.setImage(image, forState: .Normal)
            pressed = true
        } else {
    
            let image = UIImage(named: "playImage.png") as UIImage!
            let playButton  = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
            btn.setImage(image, forState: .Normal)
            pressed = false
        }
    
    }
    

    【讨论】:

      【解决方案2】:

      虽然 Dharmesh Kheni 的回答是可以的,但我还是建议使用两个按钮。您可以将它们设置在单独的功能或界面构建器中,然后根据状态显示和隐藏它们。像这样的:

      func setButtons()
      {
            playBtn.setImage(UIImage(named: "play.png"),  forState:.Normal)
            pauseBtn.setImage(UIImage(named: "play.png"),  forState:.Normal)
            pauseBtn.hidden = true
      }
      
      @IBAction func playTapped(sender: AnyObject) 
      {
            playBtn.hidden = true
            pauseBtn.hidden = flase
      
            //do other stuff 
      }
      
      @IBAction func pauseTapped(sender: AnyObject) 
      {
            playBtn.hidden = false
            pauseBtn.hidden = true
      
            //do other stuff 
      }
      

      【讨论】:

      • 有一次我玩了一下它,这是一种享受。没想到两个按钮,谢谢:)
      【解决方案3】:

      我认为您仅在突出显示状态下更新图像,因此当您释放按钮时,它会返回到原始图像。尝试在正常状态下更改它,以便它会更改图像。拿一个标志来检查播放和暂停条件。

      @IBAction func buttonTapped(sender: AnyObject) {
             if (!flag)
             { 
               //for Play
               flag = true
               ColourTestButton.setImage(UIImage(named:"USE PLAY IMAGE"), forState:. Normal) 
             }
             else
             {
               //for Pause
               flag = false
               ColourTestButton.setImage(UIImage(named:"USE PAUSE IMAGE"), forState:. Normal)
             }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多