qiuqiu20qiu 2014-02-20 12:34 采纳率: 0%
浏览 866

小白求指点~~vc问题,想做一个可以伸缩的按钮

我想实现的功能是点击button按钮,横线以下收缩,button的背景图片变成img2(图一背景)。 再点击button按钮横线以下恢复,button的背景图片改变为img1(图二背景)。。。以下图片是我要实现的大致意思,和我button按钮的代码,要是能把button的文本隐藏也行~~!
CSDN移动问答

                                       图一

CSDN移动问答

                                       图二

CSDN移动问答

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-27 19:23
    关注

    该回答引用ChatGPT

    您可以使用以下步骤实现您所需的功能:

    • 创建一个button按钮,其背景图片设置为img1。按钮上方的横线可以使用一个UIView或UIImageView来实现。
    • 通过在ViewController中使用IBOutlet来引用button和横线的视图。
    • 在ViewController中创建一个名为buttonPressed的IBAction方法,并将其连接到button按钮的Touch Up Inside事件。
    • 在buttonPressed方法中使用UIView.animate函数来实现动画。在动画中,将横线的高度设置为0,按钮的背景图片设置为img2,并将按钮的文本隐藏。如果您使用的是UIButton,可以使用button.setTitleColor()函数来隐藏文本。
    • 在buttonPressed方法中添加条件语句来切换按钮状态。例如,您可以使用一个名为buttonIsExpanded的布尔变量来表示按钮当前的状态。如果buttonIsExpanded为true,则将其设置为false,并将按钮的状态设置为“未展开”状态。如果buttonIsExpanded为false,则将其设置为true,并将按钮的状态设置为“已展开”状态。
    • 在buttonPressed方法的最后,使用UIView.animate函数来实现动画。在动画中,将横线的高度设置为原始高度,按钮的背景图片设置为img1,并将按钮的文本显示出来。如果您使用的是UIButton,可以使用button.setTitleColor()函数来显示文本。

    以下是示例代码:

    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()
                })
            })
        }
    }
    

    请注意,此代码仅提供了一个基本的框架,您需要根据您的具体要求进行调整和修改。

    评论

报告相同问题?

悬赏问题

  • ¥20 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏