用户转到主屏幕后,按钮不会更改单击时的图像
Button Won’t Change Image On-Click After User Goes to Home Screen
我有 5 个不同的按钮,我希望用户能够 select 一个,如果它不是 selected,如果它已经是 select =28=]ed,同时 de-selecting 另一个按钮,如果它是 selected。
normal = 未 selected 时按钮的图像 filled = selected
时按钮的图像
为此,我创建了一个 if/else 语句:
@IBAction func option1ButtonAction(发件人:AnyObject){
if (option1Button.currentImage == UIImage(named: "normal")) {
if option2Button.currentImage == UIImage(named: "filled") || option3Button.currentImage == UIImage(named: "filled") || option4Button.currentImage == UIImage(named: "filled") || option5Button.currentImage == UIImage(named: "filled") {
option1Button.setImage(filled, forState: .Normal)
option2Button.setImage(normal, forState: .Normal)
option3Button.setImage(normal, forState: .Normal)
option4Button.setImage(normal, forState: .Normal)
option5Button.setImage(normal, forState: .Normal)
}
else {
option1Button.setImage(filled, forState: .Normal)
}
}
else {
option1Button.setImage(normal, forState: .Normal)
}
}
之后我做了一个 if option1Button.currentImage == UIImage(named: "filled") 语句。一切都按照我想要的方式工作,但是我有一个问题。每当用户按下主页按钮然后立即返回在应用程序中,按钮仍然具有“正常”图像,即使在单击时也是如此。
我在 viewDidDisappear 函数中添加了以下代码,希望能解决这个问题:
option1Button.setImage(normal, forState: .Normal)
option2Button.setImage(normal, forState: .Normal)
option3Button.setImage(normal, forState: .Normal)
option4Button.setImage(normal, forState: .Normal)
option5Button.setImage(normal, forState: .Normal)
但我仍然遇到问题。如果能提供任何帮助,我将不胜感激。
您需要在点击时从您的按钮更改图像!我明白了吧?
对于你的问题,我相信你可以做不同的事情。我做了一个代码。
首先在按钮中设置状态图像。
option1Button.setImage(normal, forState: UIControlState.Normal);
option1Button.setImage(filled, forState: UIControlState.Disabled);
option2Button.setImage(normal, forState: UIControlState.Normal);
option2Button.setImage(filled, forState: UIControlState.Disabled);
其次我做了一个函数,这个函数改变了你按钮的状态。
selectButton(button:UIButton)
{
option1Button.enabled = button != option1Button;
option2Button.enabled = button != option2Button;
}
现在您只需以这种方式实现您的操作,其他细节是您不需要为每个按钮 ex 创建一个函数。 @IBAction func option1ButtonAction(sender: AnyObject)
只创建一个动作 @IBAction func onButtonClicked(sender: AnyObject)
并且喜欢这里的所有按钮...记住只在 selectButton(button:UIButton)
函数中增加按钮,或者如果更喜欢你可以创建一个集合并在那里按下你的按钮然后在 selectButton
做一段时间
@IBAction func onButtonClicked(sender: AnyObject) {
if let clickedButton = sender as? UIButton{
selectButton(clickedButton);
}
}
如果我理解正确你的问题,希望对你有所帮助!
我有 5 个不同的按钮,我希望用户能够 select 一个,如果它不是 selected,如果它已经是 select =28=]ed,同时 de-selecting 另一个按钮,如果它是 selected。
normal = 未 selected 时按钮的图像 filled = selected
时按钮的图像为此,我创建了一个 if/else 语句:
@IBAction func option1ButtonAction(发件人:AnyObject){
if (option1Button.currentImage == UIImage(named: "normal")) {
if option2Button.currentImage == UIImage(named: "filled") || option3Button.currentImage == UIImage(named: "filled") || option4Button.currentImage == UIImage(named: "filled") || option5Button.currentImage == UIImage(named: "filled") {
option1Button.setImage(filled, forState: .Normal)
option2Button.setImage(normal, forState: .Normal)
option3Button.setImage(normal, forState: .Normal)
option4Button.setImage(normal, forState: .Normal)
option5Button.setImage(normal, forState: .Normal)
}
else {
option1Button.setImage(filled, forState: .Normal)
}
}
else {
option1Button.setImage(normal, forState: .Normal)
}
} 之后我做了一个 if option1Button.currentImage == UIImage(named: "filled") 语句。一切都按照我想要的方式工作,但是我有一个问题。每当用户按下主页按钮然后立即返回在应用程序中,按钮仍然具有“正常”图像,即使在单击时也是如此。
我在 viewDidDisappear 函数中添加了以下代码,希望能解决这个问题:
option1Button.setImage(normal, forState: .Normal)
option2Button.setImage(normal, forState: .Normal)
option3Button.setImage(normal, forState: .Normal)
option4Button.setImage(normal, forState: .Normal)
option5Button.setImage(normal, forState: .Normal)
但我仍然遇到问题。如果能提供任何帮助,我将不胜感激。
您需要在点击时从您的按钮更改图像!我明白了吧?
对于你的问题,我相信你可以做不同的事情。我做了一个代码。
首先在按钮中设置状态图像。
option1Button.setImage(normal, forState: UIControlState.Normal);
option1Button.setImage(filled, forState: UIControlState.Disabled);
option2Button.setImage(normal, forState: UIControlState.Normal);
option2Button.setImage(filled, forState: UIControlState.Disabled);
其次我做了一个函数,这个函数改变了你按钮的状态。
selectButton(button:UIButton)
{
option1Button.enabled = button != option1Button;
option2Button.enabled = button != option2Button;
}
现在您只需以这种方式实现您的操作,其他细节是您不需要为每个按钮 ex 创建一个函数。 @IBAction func option1ButtonAction(sender: AnyObject)
只创建一个动作 @IBAction func onButtonClicked(sender: AnyObject)
并且喜欢这里的所有按钮...记住只在 selectButton(button:UIButton)
函数中增加按钮,或者如果更喜欢你可以创建一个集合并在那里按下你的按钮然后在 selectButton
@IBAction func onButtonClicked(sender: AnyObject) {
if let clickedButton = sender as? UIButton{
selectButton(clickedButton);
}
}
如果我理解正确你的问题,希望对你有所帮助!