Swift 如何像这样添加动画按钮?

Swift 如何像这样添加动画按钮?,swift,animation,button,uibutton,Swift,Animation,Button,Uibutton,如何创建一个动画和阴影按钮,如图所示 (单击按钮后,它会发光并摆动) 这是我的密码: (此代码实现了swing和shadow,但需要进行组织和安排,以便它能够通过一次单击运行灯光和swing,并且按钮不会不必要地从其位置移动) 及 感谢您的时间您的代码按编写的方式工作,并在单击时提供一个摆动按钮。确保控制从按钮拖动到按钮定义的单击 您需要向按钮添加两个图像,一个用于关闭状态,另一个用于打开状态 等等 下面是添加设置图像的中间结果 更改图像的方法是将其添加到资源目录中,然后使用以下方法进行

如何创建一个动画和阴影按钮,如图所示 (单击按钮后,它会发光并摆动)

这是我的密码:
(此代码实现了swing和shadow,但需要进行组织和安排,以便它能够通过一次单击运行灯光和swing,并且按钮不会不必要地从其位置移动)


感谢您的时间

您的代码按编写的方式工作,并在单击时提供一个摆动按钮。确保控制从按钮拖动到按钮定义的单击

您需要向按钮添加两个图像,一个用于关闭状态,另一个用于打开状态

等等

下面是添加设置图像的中间结果

更改图像的方法是将其添加到资源目录中,然后使用以下方法进行更改:

if sender.isSelected {
        sender.isSelected = false
        sender.setImage(#imageLiteral(resourceName: "off"), for: .normal)
        sender.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.50).cgColor
        sender.layer.shadowOffset = CGSize(width: 0, height: 3)
        sender.layer.shadowOpacity = 1.0
        sender.layer.shadowRadius = 10.0
        sender.layer.masksToBounds = false
    } else {
        sender.isSelected = true
        sender.setImage(#imageLiteral(resourceName: "onbtn"), for: .normal)
        sender.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.0).cgColor

    }

您应该描述您的代码实际执行的操作,以及您面临的问题(例如,缺少哪些效果)。此代码实现了swing和shadow,但需要进行组织和安排,以便它能够通过一次单击运行灯光和swing,并且按钮不会不必要地从其位置移动。请删除下面的“答案”和上面的问题中的信息。好的,对此我非常抱歉,我是新来的,这是我的第一个问题。请告诉我如何使按钮像视频一样摆动和发光?@Haitham要点亮图像,你需要做两件事。1) 使用两个不同的图像-请参见我的编辑。你可以添加一个图层来创建较浅的阴影。我知道如何将一个图像添加到一个按钮(1x、2x、3x),但我不知道如何将两个不同的图像添加到一个按钮button@Haitham更新了答案,以显示在将两个图像添加到资源后如何更改它们。但在这一点上,这是相当基本的东西,请考虑看一些关于图像和按钮的快速或XCug教程。@ HaithamAbdelWahab,如果这个解决方案对你有用的话,请投票表决。
import UIKit

class ButtonWithShadow: UIButton {
    override func draw(_ rect: CGRect) {
        //updateLayerProperties()
    }
}
if sender.isSelected {
        sender.isSelected = false
        sender.setImage(#imageLiteral(resourceName: "off"), for: .normal)
        sender.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.50).cgColor
        sender.layer.shadowOffset = CGSize(width: 0, height: 3)
        sender.layer.shadowOpacity = 1.0
        sender.layer.shadowRadius = 10.0
        sender.layer.masksToBounds = false
    } else {
        sender.isSelected = true
        sender.setImage(#imageLiteral(resourceName: "onbtn"), for: .normal)
        sender.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.0).cgColor

    }