点击时如何淡入整个 UIButton 而不仅仅是标题?
Posted
技术标签:
【中文标题】点击时如何淡入整个 UIButton 而不仅仅是标题?【英文标题】:How to fade in the entire UIButton instead of just title when tapped? 【发布时间】:2021-12-25 08:39:55 【问题描述】:所以我有以下按钮,点击时只会向标题添加淡入淡出动画。我希望淡入淡出动画发生在整个按钮中。我怎样才能做到这一点?谢谢!
import UIKit
class ViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
view.backgroundColor = .white
let button = UIButton(type: .system)
button.setTitle("Btn", for: .normal)
button.backgroundColor = .systemBlue
button.tintColor = .white
view.addSubview(button)
button.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
button.heightAnchor.constraint(equalToConstant: 60.0),
button.widthAnchor.constraint(equalToConstant: 60.0),
button.centerXAnchor.constraint(equalTo: view.centerXAnchor),
button.centerYAnchor.constraint(equalTo: view.centerYAnchor),
])
【问题讨论】:
在按钮动作上添加简单的淡入淡出动画。 哦,所以按钮的淡入淡出动画不是内置的? @RTXGamer 是的,只有文本部分闪烁,您可以使用showsTouchWhenHighlighted
来获得触摸发光效果。
【参考方案1】:
您可以尝试将 addTarget 与 objc 函数一起使用:
@objc func buttonTapped(_ sender: UIButton)
print("buttonTapped")
sender.alpha = 0.5
DispatchQueue.main.asyncAfter(deadline: .now() + 0.2)
sender.alpha = 1.0
通过以下方式执行:
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
【讨论】:
以上是关于点击时如何淡入整个 UIButton 而不仅仅是标题?的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewController 自定义单元格中缺少 UIButton 默认点击淡入淡出动画