如何将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)
}
答案 0 :(得分:0)
如何将uiButton对象名称传递给更改按钮的函数 图片?还是有另一种解决方法吗?
等等,你想要一个看起来与普通UiButton不同的自定义UiButton吗?你有这个按钮的自定义图像吗?我建议你这个视频
https://www.youtube.com/watch?v=gAU3VE7T21M&t=217s
此视频中的方法很好(如果我的问题当然正确并且使用了故事板) 基本上它的作用是:
将您想要的图像放入UiView
设置约束
为图片添加UiGestureRecogniser
设置"用户互动"为真(在故事板的右侧)
您可以将您的图片链接为@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 ")
}
希望我能帮到你,如果没有,那我很抱歉