根据控件状态更改按钮的图像

Posted

技术标签:

【中文标题】根据控件状态更改按钮的图像【英文标题】:Changing the image of a button based on control state 【发布时间】:2016-10-10 22:06:36 【问题描述】:

我试图在单击时更改按钮的图像,它们就像评级系统一样的星星。单击时图像保持不变,单击时不会更改。我在故事板中设置了默认图像。

class DetailViewController: UIViewController 

    @IBOutlet weak var detailTitleViewLbl: UILabel!        
    @IBOutlet weak var detailDescription: UILabel!

    @IBOutlet weak var yearLabel: UILabel!

    @IBOutlet weak var star1: UIButton!
    @IBOutlet weak var star2: UIButton!
    @IBOutlet weak var star3: UIButton!
    @IBOutlet weak var star4: UIButton!
    @IBOutlet weak var star5: UIButton!

    override func viewDidLoad() 
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    

    @IBAction func star1Pressed() 
        star1.setImage(#imageLiteral(resourceName: "favorite (1).png"), for: UIControlState.selected)
    

    func star2Pressed() 
    func star3pressed() 
    func star4pressed() 


【问题讨论】:

您确实应该将代码发布为可编辑文本,因为您的代码存在格式问题,可能导致其失败(例如,您在 viewDidLoadFunction 中声明了函数“start2Pressed”,这就是已经引起了很多问题。 【参考方案1】:

单击时按钮不会更改为选定状态。您需要编写代码,在单击按钮时将其选定标志设置为 true。

请注意,您可以将多个 IBAction 连接到一个按钮,因此您可以有一个将选定标志设置为 true 的操作,以及另一个执行自定义“东西”的操作,因此您不必复制“样板” " 在每个此类按钮的IBAction 中设置选定状态的代码。

【讨论】:

以上是关于根据控件状态更改按钮的图像的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个更改其背景图像以表示其状态的按钮[重复]

根据 UIButton 控件事件更改 UILabel

如何使选定的单选按钮根据另一个单选按钮更改另一个状态来更改一个状态?

根据 SwiftUI 中的状态(正常、突出显示、禁用)更改按钮颜色?

如何根据前景图像在android中动态更改状态栏的颜色?

在 Iphone 中选择按钮时更改按钮的图像