我有幾個組件需要動畫。我一直在使用UIVIew.animate()
很長一段時間沒有問題。但是在這種情況下,其中一個組件不具有動畫效果(特別是pullUpViewBottomCSTR
),它只是將視圖「跳」到沒有動畫的位置(而其餘的按預期工作)。動畫不適用於所有視圖(iOS)
你可以提供任何可能的解釋(因爲它可能是垃圾複製粘貼一切)。我很困惑。
UIView.animate(withDuration: 0.5, delay: 0.0, options: .curveEaseOut, animations: {
self.pullUpViewBottomCSTR!.constant = 0
self.mainImagePullUpBottomCSTR.constant = 0
self.obscuringFadeEffectView.alpha = 0;
self.layoutIfNeeded()
}) { (completed) in
//
}
我不認爲我有到位的任何衝突的約束。
此代碼位於
UIView
組件中,而不是UIViewController
。我將這個組件加載到viewController中。我曾經在UIViewController中擁有所有的東西,我認爲它一直正常工作,直到我將它移動到相應的.xib和.swift文件。
更新:
約束最初加入如下。
self.pullUpViewBottomCSTR = parentController.view.bottomAnchor.constraint(equalTo: self.bottomAnchor)
self.pullUpViewBottomCSTR!.isActive = true;
self.pullUpViewBottomCSTR!.constant = 0
我後來用盤式識別器,並根據需要進行更新的約束(這可能是相關的)(這就是爲什麼即時通訊保持對它的引用)。
嘗試寫self.view.layoutIfNeeded() –
當前組件是一個UIView,而不是一個UIViewController 我已經嘗試做到以下幾點:self.pullupView.layoutIfNeeded()。似乎沒有工作。我希望我不會這樣做,因爲我已經在superview上做self.layoutIfNeeded()。但在任何情況下,其不幸的是沒有改變任何東西:/ –
檢查約束的初始值(應該是0) –