消息关闭
    暂无新消息!
直接上代码:
import UIKit

class ViewController: UIViewController {

    var consY = NSLayoutConstraint()
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        view.addSubview(myView)
        
        consY = NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: myView.superview, attribute: NSLayoutAttribute.Top, multiplier: 1.0, constant: 100)

        let consX = NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.Left, relatedBy: NSLayoutRelation.Equal, toItem: myView.superview, attribute: NSLayoutAttribute.Left, multiplier: 1.0, constant: 100)
        let consWidth = NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 0.0, constant: 100)
        let consHeight = NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 0.0, constant: 100)
        
        myView.addConstraints([consWidth, consHeight])
        view.addConstraints([consX, consY])
        
        UIView.animateWithDuration(3.0, animations: { () -> Void in
            self.consY.constant = 400
            self.myView.layoutIfNeeded()
            
            }) { (_) -> Void in
                print("完成")
        }
    }
    
    private lazy var myView: UIView = {
        let v = UIView()
        v.backgroundColor = UIColor.redColor()
        v.translatesAutoresizingMaskIntoConstraints = false
        
        return v
    }()
}

通过改变consY 这一条约束来制作动画,但是动画是从0.0开始的,而且是从小到大,我想让它从他的原始位置开始,并且大小不变。求大神帮忙!

2个回答