2013-12-05 7 views
2

У меня есть панель инструментов на моем представлении, и я хочу переместить ее с анимацией, но анимация не работает, панель инструментов быстро перемещается в новую позицию. Я использую его:iOS - Moving view не анимируется

[UIView animateWithDuration:2.0f animations:^{ 
    [self.view layoutIfNeeded]; 
    self.toolbarBottomLayoutConstraint.constant = editing ? 0 : -44; 
}]; 

Кто-нибудь знает почему?

ответ

1

Я попытался просто изменить анимацию блочные предложения и он работал для меня:

[UIView animateWithDuration:2.0 animations:^{ 
    self.bottomMargin.constant = editing ? 0 : -44; 
    [self.view layoutIfNeeded]; 
}]; 
+0

Вы правы, это работает, возможно, layoutIfNeeded должен быть последним. –

+0

@BartoszBialecki Я пытаюсь дать свой ответ, формат объектива-c, но я не знаю, как это сделать. Не могли бы вы мне помочь? – amanhuipg

+0

Что значит объектно-c-формат? Я просто добавляю некоторое пространство в начале строки. –

0

Почему бы вам не сделать что-то подобное?

[UIView animateWithDuration:2.0f 
    animations:^{ 
     yourView.center = CGPointMake(yourView.frame.size.width/2, -44); 
} completion:^(BOOL finished) {}]; 
+3

Потому что он использует autolayout. При использовании этой функции вы не можете напрямую манипулировать фреймом (центром, источником ...). –

Смежные вопросы