我正在對包含ImageView和標籤的視圖進行動畫處理。 請參閱圖1.我正在下圖tableView的滾動時嘗試動畫upperView。最終的結果應該如圖2所示。其中imageView的高度和寬度都減小了,並且在左側角落處,imageView前面有最小高度和標籤。動畫工作正常,imageView順利地從原始位置移動到最終位置,標籤也一樣。但是,upperView並不像每個動畫一樣工作。動畫視圖跳轉到最終位置而不是慢速運動
我試着用upperViews Height Constraint和它的框架。
如果我改變它的高度約束,它會很快進入最終位置。
如果我給高度使用upperView.frame.size.height然後視圖上升,但表視圖仍然在他們的地方。
這是我曾嘗試
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView.contentOffset.y > 0
{
UIView.animateWithDuration(1.5, delay: 0.0, options: .CurveEaseOut, animations:
{
self.imageView.frame = CGRect(x: 5.0, y: 0.0, width: 30, height: 40)
}, completion: { finished in
UIView.animateWithDuration(1.5, delay: 1.0, options: UIViewAnimationOptions.AllowUserInteraction,animations: {
self.selectedProgramNameLabel.center = CGPoint(x: self.selectedProgramNameLabel.center.x, y: self.imageView.center.y)
}, completion: { finished in
UIView.animateWithDuration(1.5, delay: 2.0, options: UIViewAnimationOptions.AllowUserInteraction, animations: {
self.upperViewHeightConstraint.constant = 50
}, completion: { finished in
})
})
})
}
else if scrollView.contentOffset.y == 0
{
UIView.animateWithDuration(1.5, delay: 0.0, options: .CurveEaseOut, animations:
{
self.selectedProgramNameLabel.center = CGPoint(x: self.selectedProgramNameLabel.center.x, y: self.imageView.center.y + self.imageView.frame.height - 45)
}, completion: { finished in
UIView.animateWithDuration(1.5, delay: 0.0, options: UIViewAnimationOptions.AllowUserInteraction,animations: {
self.imageView.frame = CGRect(x: self.upperView.frame.origin.x, y: self.upperView.frame.origin.y, width: 100.0, height: 134)
}, completion: { finished in
UIView.animateWithDuration(1.5, delay: 1.0, options: UIViewAnimationOptions.AllowUserInteraction, animations: {
}, completion: { finished in
})
})
})
}
TIA。
我已經試過self.view.layoutIfNeeded()之前,但還是它的作用方式相同。跳到最後的位置。 – iDeveloper
您的動畫塊正在執行多次,讓它們生成一次動畫。 – ankit
是的,我讓它執行一次,但它仍然沒有動畫。它跳躍:( – iDeveloper