为 PaintCode 代码创建的 UIButton 添加高亮效果

Posted

技术标签:

【中文标题】为 PaintCode 代码创建的 UIButton 添加高亮效果【英文标题】:Add highlight effect to the UIButton that created by PaintCode code 【发布时间】:2019-03-12 00:30:05 【问题描述】:

我已经使用 PaintCodes 代码制作了一个按钮:

class AddIconView: OUIButton 
    override func draw(_ rect: CGRect) 
        AddIcon.draw(frame: rect)
   

然后我将它的类添加到 UIButton。问题是,按钮在触摸后不再突出显示,添加突出显示的最佳方法是什么? 例如这个按钮:

@IBOutlet weak var addButton: AddIconView!

非常感谢您提前提供的帮助

编辑:

我为它创建了一个自定义类:

class OUIButton: UIButton 
override var isHighlighted: Bool 
    get 
        return super.isHighlighted
    
    set 
        if newValue 
            backgroundColor = .green
        
        else 
            backgroundColor = .blue
        
        super.isHighlighted = newValue
    
 

为了测试,我添加了蓝色和绿色。使用此代码,当我触摸按钮时,背景将变为并保持蓝色。 我希望它只有在被触摸时才会改变,释放后它会恢复到正常状态,就像普通的 UIbutton 一样

【问题讨论】:

【参考方案1】:

已经解决了,下面是代码供大家使用:

class OUIButton: UIButton 
    override var isHighlighted: Bool 
        get 
            return super.isHighlighted
        
        set 
            if newValue 
                    UIView.animate(withDuration: 0.25, delay: 0, options:.curveEaseIn , animations: 
                self.alpha = 0.5
            , completion: nil)
        
        else 
            UIView.animate(withDuration: 0.25, delay: 0, options:.curveEaseOut , animations: 
                self.alpha = 1
            , completion: nil)
        
        super.isHighlighted = newValue
    

【讨论】:

以上是关于为 PaintCode 代码创建的 UIButton 添加高亮效果的主要内容,如果未能解决你的问题,请参考以下文章

Objective C - 从这个 PaintCode 代码创建 UIImage

PaintCode 鼠标绘图转CGPath代码

PaintCode 绘图代码 android 使用像素而不是点/DP

调整 PaintCode 应用程序生成的图像大小

从代码(PaintCode)绘制的视图是像素化的,缩放时非常像素化

PaintCode,如何在矢量的一部分周围添加一个框架并让它动态调整大小?