我想更改View的宽度约束。我在视图控制器中将宽度与IBOutlet连接起来。但是,它不起作用。
尝试为其制作动画,实际上视图会继续回到原来的位置。
以下是代码:
_providerExpSearchInputWidth.constant = 1000.0f;
[_providerExpSearchInput layoutIfNeeded];
任何人都可以提供建议吗?
答案 0 :(得分:0)
您应该让视图告诉autolayout首先立即布局其子视图,以便完全知道布局约束。然后你应该设置一个新约束,并在动画块中再次告诉autolayout立即布局其子视图。由于您在动画块中进行此调用,因此所有更改都将进行动画处理。
您可以尝试这样的事情:
[self.view layoutIfNeeded];
_providerExpSearchInputWidth.constant = 1000.0f;
[UIView animateWithDuration:4.0 animations:^{
[self.view layoutIfNeeded];
}];
这是来自layoutIfNeeded上的Apple文档:
使用此方法在绘制前强制子视图的布局。使用以根视图接收消息的视图,此方法从根开始布置视图子树。