2016-04-20 3 views
0

Я хочу изменить ограничение ширины в представлении. Я связал ширину с IBOutlet внутри моего контроллера просмотра. Однако это не работает.Изменение NSLayoutConstraint не работает и просмотр продолжается

Попробуйте анимировать его, что происходит, на самом деле представление продолжает возвращаться в исходное положение.

Вот код:

_providerExpSearchInputWidth.constant = 1000.0f; 
[_providerExpSearchInput layoutIfNeeded]; 

Любой человек может посоветовать?

+0

'updateConstraintsIfNeeded' вместо' layoutIfNeeded'? – 9dan

ответ

0

У вас должно быть ваше мнение, чтобы сказать автоудаление по макету его подпрограммы сразу же, чтобы ваши ограничения макета были полностью известны. Затем вы должны установить новое ограничение, и в вашем блоке анимации вы снова укажете автозапуск на макет своих подпрограмм сразу. Поскольку вы делаете этот вызов в блоке анимации, все изменения будут анимированы.

Вы можете попробовать что-то вроде этого:

[self.view layoutIfNeeded]; 
_providerExpSearchInputWidth.constant = 1000.0f; 

[UIView animateWithDuration:4.0 animations:^{ 
    [self.view layoutIfNeeded]; 
}]; 

Это из документации компании Apple на layoutIfNeeded:

Используйте этот метод, чтобы заставить макет подобозрения перед нанесением. Используя представление, которое получает сообщение в виде корневого представления, этот метод определяет поддеревье вида, начиная с корня.

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