Ios 在swift中按下按钮时填充按钮图标
我有一个按钮图标,我想当按下按钮图标填充颜色,当再次按下空颜色,并返回到以前的状态Ios 在swift中按下按钮时填充按钮图标,ios,swift,Ios,Swift,我有一个按钮图标,我想当按下按钮图标填充颜色,当再次按下空颜色,并返回到以前的状态 注意:我不想在每次按下按钮后都更改图标。您可以调用setImage(\uu:for:)方法为特定状态设置按钮的图像 当用户未按下按钮时,该按钮处于normal状态,因此您应该执行以下操作: yourButton.setImage(hollowHeart, for: .normal) yourButton.setImage(filledHeart, for: .highlighted) 当用户触摸按钮时,按钮
注意:我不想在每次按下按钮后都更改图标。您可以调用
setImage(\uu:for:)
方法为特定状态设置按钮的图像
当用户未按下按钮时,该按钮处于normal
状态,因此您应该执行以下操作:
yourButton.setImage(hollowHeart, for: .normal)
yourButton.setImage(filledHeart, for: .highlighted)
当用户触摸按钮时,按钮处于突出显示的状态,因此您应该执行以下操作:
yourButton.setImage(hollowHeart, for: .normal)
yourButton.setImage(filledHeart, for: .highlighted)
您只需在创建按钮后执行一次,可能在
viewDidLoad
中,您可以调用setImage(u:for:)
方法为特定状态设置按钮的图像
当用户未按下按钮时,该按钮处于normal
状态,因此您应该执行以下操作:
yourButton.setImage(hollowHeart, for: .normal)
yourButton.setImage(filledHeart, for: .highlighted)
当用户触摸按钮时,按钮处于突出显示的状态,因此您应该执行以下操作:
yourButton.setImage(hollowHeart, for: .normal)
yourButton.setImage(filledHeart, for: .highlighted)
您只需在创建按钮后执行一次,可能是在
viewDidLoad
中。下面是如何实现此目的的示例,如果您不了解某些内容,请告诉我
class ViewController: UIViewController {
@IBOutlet weak var someBtn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
configureUI()
}
//Setting up images for normal and selected state.
func configureUI() {
let image = UIImage(named: "image")
let imageFilled = UIImage(named: "image-filled")
someBtn.setImage(image, for: .normal)
someBtn.setImage(imageFilled, for: .selected)
}
@IBAction func someBtnPressed(_ sender: Any) {
// Toggle basically makes someBtn’s selected state either true or false when pressed
someBtn.isSelected.toggle()
}
}
这里是一个例子,你可以如何做到这一点,让我知道,如果你不明白的东西
class ViewController: UIViewController {
@IBOutlet weak var someBtn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
configureUI()
}
//Setting up images for normal and selected state.
func configureUI() {
let image = UIImage(named: "image")
let imageFilled = UIImage(named: "image-filled")
someBtn.setImage(image, for: .normal)
someBtn.setImage(imageFilled, for: .selected)
}
@IBAction func someBtnPressed(_ sender: Any) {
// Toggle basically makes someBtn’s selected state either true or false when pressed
someBtn.isSelected.toggle()
}
}
你可以看到这个@MdRashedPervez我不想改变按钮的背景色!!!我想要填充按钮图标颜色你可以看到这个@MdRashedPervez我不想要改变按钮背景颜色!!!我想要填充按钮图标颜色不适合我!在情节提要中创建按钮,但在viewDidLoad中设置正常状态。什么也没发生@GiaJoli您还需要为高亮显示状态设置填充图像。是你干的吗?是的!在viewDidLoad中,代码是:
LikeBtn.setImage(UIImage(名为:“Like”),用于:.normal)
,在button click中,代码是:LikeBtn.setImage(UIImage(名为:“LikeFill”),用于:.highlighted)
@GiaJoli不,您不应该将其放在button click中。把第二行也放到viewDidLoad
中。不要为我工作!在情节提要中创建按钮,但在viewDidLoad中设置正常状态。什么也没发生@GiaJoli您还需要为高亮显示状态设置填充图像。是你干的吗?是的!在viewDidLoad中,代码是:LikeBtn.setImage(UIImage(名为:“Like”),用于:.normal)
,在button click中,代码是:LikeBtn.setImage(UIImage(名为:“LikeFill”),用于:.highlighted)
@GiaJoli不,您不应该将其放在button click中。将第二行也放在viewDidLoad
中。@GiaJoli Swift 4.2中的新功能:Swift 4中的toggle()
不存在。但你的答案是完美的。谢谢你的someBtn.isSelected=!someBtn.isSelected
如果不起作用,请尝试此选项,而不是toggle()
。很高兴听到这有帮助;)@GiaJoli在Swift 4.2中的新功能:Swift 4中不存在toggle()。但你的答案是完美的。谢谢你的someBtn.isSelected=!someBtn.isSelected
如果不起作用,请尝试此选项,而不是toggle()
。很高兴听到这有帮助;)