2014-01-31 4 views
1

Я не могу понять, как установить продолжительность анимации NSLayoutConstraint в iOS7. Вот мой код:Продолжительность анимации NSLayoutConstraint в iOS7

self.loadingViewTop.constant = -[[UIScreen mainScreen] bounds].size.height; 
self.loadingViewBottom.constant = [[UIScreen mainScreen] bounds].size.height; 

[UIView animateWithDuration:30.0f animations:^{ 
    [self.loadingView setNeedsUpdateConstraints]; 
}]; 
+0

возможно дубликат (http://stackoverflow.com/questions/12926566/are-nslayoutconstraints-animatable) – Wain

+0

@iiFreeman Я попробовал. На самом деле, если вы удалите код [UIView animateWithDuration], представление все еще оживляет. Я не вижу никакого возможного решения, как его контролировать. – Dmitry

ответ

1

О вы забыли позвонить [self.view layoutIfNeeded]; внутри анимации блока

+0

Я тоже попробовал. Это не имеет никакого значения. Я думаю, что ограничения компоновки ведут себя по-разному в iOS7. Код, который хорошо работал в iOS6, больше не работает. – Dmitry

+0

Вы проверили, что ваши константы на самом деле не ноль? – iiFreeman

+0

Хорошо, я заработал. Вот правильный способ: self.loadingViewTop.constant = - [[UIScreen mainScreen] bounds] .size.height; self.loadingViewBottom.constant = [[UIScreen mainScreen] bounds] .size.height; [UIView animateWithDuration: 30.0f анимация:^{ [self.view layoutIfNeeded]; }]; – Dmitry

1

Решение: [? Are NSLayoutConstraints Animatable]

self.loadingViewTop.constant = -[[UIScreen mainScreen] bounds].size.height; 
self.loadingViewBottom.constant = [[UIScreen mainScreen] bounds].size.height; 

[UIView animateWithDuration:30.0f animations:^{ 
    [self.view layoutIfNeeded]; 
}]; 
Смежные вопросы