如何为线设置动画以使其变大?

问题描述

我只用Xcode创建了一个空白项目,并添加一个按钮。我将其居中并将其高度和宽度设置为60。这是我的代码

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var button: UIButton!
    
    var lineView = UIView(frame: CGRect(x: 0,y: 60,width: 5,height: 1))
    
    override func viewDidLoad() {
        super.viewDidLoad()

        lineView.backgroundColor = UIColor.black
        button.addSubview(lineView)
        
    }
    
    @IBAction func sampleButton(_ sender: Any) {
        
            UIView.animate(withDuration: 4.0,animations: {
                
                self.lineView = UIView(frame: CGRect(x: 0,width: self.button.frame.width,height: 1))
                self.button.addSubview(self.lineView)
        
            },completion: nil)
        
    }
    
}

单击按钮时,我希望宽度从5像素变为按钮的宽度60。我也想对此进行动画处理,但是遇到了麻烦。到目前为止,当我单击按钮时,什么都没有发生。有人可以帮我吗?

解决方法

不创建新视图。只需更改您已有的框架:

UIView.animate(withDuration: 4.0,animations: {
    
    self.lineView.frame = CGRect(x: 0,y: 60,width: self.button.frame.width,height: 1)

},completion: nil)