Я работаю над анимацией своего представления, которое содержит ImageView и Label. См. Рисунок 1. Я пытаюсь оживить upperView, когда прокрутка ниже tableView завершена. И окончательный результат должен выглядеть как на рисунке 2. где высота и ширина imageView уменьшены и находится в левом углу с минимальной высотой и меткой перед imageView. Анимация работает нормально, imageView плавно переходит из исходного положения в конечное, как и Label. Но upperView не работает в соответствии с анимацией.
Я пробовал это с ограничением высоты upperViews и его фреймом.
Если я изменю его с помощью ограничения по высоте, он очень быстро вернется в свое окончательное положение.
И если я задаю высоту с помощью 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.