将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)
}

如何将uibutton对象名称传递给一个函数以更改按钮 图像?还是有另一种解决这个问题的方法?

等等,您是否想要一个与普通Uibutton不同的自定义UIBUTTON?因此,您确实有一个按钮的自定义图像吗?我建议你这个视频

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

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

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

  2. 设置约束

  3. 向图像添加一个uigeSturercogniser

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

  5. 您将能够将图像链接为@ibaction,然后将图像链接到@iboutlet(或者您稍后无法更改(

通过在图像中添加@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 ")
    }

希望我能够为您提供帮助,如果没有,我很抱歉

最新更新