将UIButton对象名称传递给函数

时间:2018-04-04 13:37:14

标签: ios swift function object uibutton

如何将UIButton对象名称传递给更改按钮图像的函数?或者有另一种解决方法吗?

我这样调用我的函数(没有对象名称)。

如何更改它以将UIButton对象名也传递给函数?

flipImage(imageName: "myImage1")

我的功能:

func flipImage(imageName: String) {
    //  self.Picture.image = UIImage (named: imageName)
    let image = UIImage(named: imageName)
    btn1.setImage(image, for: .normal)
    UIView.transition(with: btn1, duration: 0.3, options:  .transitionFlipFromLeft, animations: nil, completion: nil)
}

我已将功能更改为此。 “没有错误”,但如果这是正确的方法,我该如何调用该函数?

func flipImage2(buttonName: UIButton, imageName: String) {
    //  self.Picture.image = UIImage (named: imageName)
    let image = UIImage(named: imageName)
    buttonName.setImage(image, for: .normal)
    UIView.transition(with: buttonName, duration: 0.3, options: .transitionFlipFromLeft, animations: nil, completion: nil)
}

1 个答案:

答案 0 :(得分:0)

  

如何将uiButton对象名称传递给更改按钮的函数   图片?还是有另一种解决方法吗?

等等,你想要一个看起来与普通UiButton不同的自定义UiButton吗?你有这个按钮的自定义图像吗?我建议你这个视频

https://www.youtube.com/watch?v=gAU3VE7T21M&t=217s

此视频中的方法很好(如果我的问题当然正确并且使用了故事板) 基本上它的作用是:

  1. 将您想要的图像放入UiView

  2. 设置约束

  3. 为图片添加UiGestureRecogniser

  4. 设置"用户互动"为真(在故事板的右侧)

  5. 您可以将您的图片链接为@IBAction,并将图片链接到@IbOutlet(或者您以后无法更改)

  6. 通过在图像中添加@IBAction,您可以在识别出定义的手势后实际更改图像 假设您观看了视频,那么最终您应该在代码中获得一些内容,例如

     @IBAction func nameOfYourFunction (_ sender: Any) {
         ...   }
    

    然后你要做的就是在里面添加你的代码 所以看起来应该是

    @IBAction func nameOfYourFunction (_ sender: Any) 
    {
      yourImageName.image = UIImage(named: "yourNewImageName")
     // done 
    }
    

    现在让我们说你想在每次点击按钮时更改图像,那么你需要一个布尔值.... 这样做(观看视频后)

    import UIKit
    var isTwitterSelected = false // this will be switched every time later in the code (when you'll be pressing the button)
    @IBAction func shareOnTwitterPressed (_ sender: Any)
        {
            isTwitterSelected = !isTwitterSelected
            twitterShareButton.image  = isTwitterSelected ? UIImage(named: "twitter") : UIImage(named: "twitterUnSelected")
            print("pressed twitter share button ")
        }
    

    希望我能帮到你,如果没有,那我很抱歉