我想实现的功能是点击button按钮,横线以下收缩,button的背景图片变成img2(图一背景)。 再点击button按钮横线以下恢复,button的背景图片改变为img1(图二背景)。。。以下图片是我要实现的大致意思,和我button按钮的代码,要是能把button的文本隐藏也行~~!
图一
图二
我想实现的功能是点击button按钮,横线以下收缩,button的背景图片变成img2(图一背景)。 再点击button按钮横线以下恢复,button的背景图片改变为img1(图二背景)。。。以下图片是我要实现的大致意思,和我button按钮的代码,要是能把button的文本隐藏也行~~!
图一
图二
该回答引用ChatGPT
您可以使用以下步骤实现您所需的功能:
以下是示例代码:
class ViewController: UIViewController {
@IBOutlet weak var button: UIButton!
@IBOutlet weak var lineView: UIView!
@IBOutlet weak var lineHeightConstraint: NSLayoutConstraint!
var buttonIsExpanded = false
var originalLineHeight: CGFloat = 0
override func viewDidLoad() {
super.viewDidLoad()
// 获取横线的原始高度
originalLineHeight = lineHeightConstraint.constant
}
@IBAction func buttonPressed(_ sender: UIButton) {
UIView.animate(withDuration: 0.3, animations: {
// 收缩横线和隐藏按钮文本
self.lineHeightConstraint.constant = 0
self.button.setBackgroundImage(UIImage(named: "img2"), for: .normal)
self.button.setTitleColor(.clear, for: .normal)
self.view.layoutIfNeeded()
}, completion: { _ in
// 切换按钮状态
if self.buttonIsExpanded {
self.buttonIsExpanded = false
} else {
self.buttonIsExpanded = true
}
UIView.animate(withDuration: 0.3, animations: {
// 恢复横线和显示按钮文本
self.lineHeightConstraint.constant = self.originalLineHeight
self.button.setBackgroundImage(UIImage(named: "img1"), for: .normal)
self.button.setTitleColor(.black, for: .normal)
self.view.layoutIfNeeded()
})
})
}
}
请注意,此代码仅提供了一个基本的框架,您需要根据您的具体要求进行调整和修改。