5
的動畫我遷移我的代碼從雨燕1.2至2.0雨燕的iOS 9故障的UILabel
在雨燕1.2/iOS8上,動畫只是工作。但是在iOS 9中,它並沒有對它進行動畫處理,標籤立即改變位置,就好像從未調用過layoutIfNeeded
一樣。
這是我如何爲我的UILabel製作一個UIButton的動畫。 (我用的自動佈局,這就是爲什麼我用layoutIfNeeded)
使用的UILabel(不工作)
titleLabelTopConstraint.constant = 88;
UIView.animateWithDuration(0.8, delay: 0.38, usingSpringWithDamping: 0.54, initialSpringVelocity: 1, options: UIViewAnimationOptions.CurveLinear, animations: {() -> Void in
self.titleLabel.layoutIfNeeded();
}, completion: nil);
使用的UIButton(IT WORKS)
buttonTopConstraint.constant = 88;
UIView.animateWithDuration(0.8, delay: 0.38, usingSpringWithDamping: 0.54, initialSpringVelocity: 1, options: UIViewAnimationOptions.CurveLinear, animations: {() -> Void in
self.button.layoutIfNeeded();
}, completion: nil);
但是如果我在UIButton上做同樣的工作!
有什麼想法?爲什麼UILabel不具有動畫性?
它解決了它。但爲什麼? – JayVDiyk
通常,當您更新視圖上的約束時,應讓iOS佈局系統通過使用setNeedsLayout方法知道約束已更改。這是蘋果的性能優化,因此他們不會嘗試不必要地佈置視圖。至於爲什麼它適用於UIButton,我不能肯定地說。 Apple可能會在UIButton實現中調用setNeedsLayout。 –
謝謝。這解決了它。這隻發生在iOS9中。 – JayVDiyk