約束動畫如何實現?(swift)

約束動畫需要view調用一下layoutIfNeeded纔可以, 直接上代碼


    // MARK: - 彈簧動畫
    private func settingAnimation() {
        
        // 更新約束
        self.iconImageView.snp_updateConstraints(closure: { (make) -> Void in
            
            make.bottom.equalTo(self.view.snp_bottom).offset(-UIScreen.mainScreen().bounds.height + 200)
        })
        
        // usingSpringWithDamping: 彈簧效果 0~1.0 取值越小,彈簧效果越明顯
        // initialSpringVelocity:表示初始的速度
        // OC裏給枚舉的默認值是 填寫 0;swift中 用 []標示
        UIView.animateWithDuration(1.5, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 10, options: [], animations: { () -> Void in
            
            // 約束動畫,需要調用layoutIfNeeded
            self.view.layoutIfNeeded()
            
            }) { (_) -> Void in
                
                printLog("動畫完成")
                // MARK: - 切換控制器視圖
                NSNotificationCenter.defaultCenter().postNotificationName(kNotificationChangeViewController, object: self)
        }
    }

約束一定要在動畫之前, 在動畫中調用一下layoutIfNeeded, 要不然不會達到你想要的效果的



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章