使用Autolayout为UIView设置动画

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Autolayout为UIView设置动画相关的知识,希望对你有一定的参考价值。

当我尝试为iPhoneX设置UIView动画时,我遇到了自动布局的一些问题。正如你在第一张图片中看到的那样,我的UIView被关闭了,所以我得到了我想要的东西......

enter image description here

结果

enter image description here

在第二张图片中,我尝试打开我的UIView,但是你可以看到空间仍然在底部,而不是在iPhone 7上,没有空间。

enter image description here

如何延长我的uiview的长度以覆盖底部缺失的空间?

我已经尝试在Superview中从Safe Area更改我的第一个项目,但是这给我带来了另一个问题,因为当我的uiview关闭时,它比iphone 7加上太多了......

enter image description here

结果

enter image description here


我需要的是得到这样的结果

enter image description here enter image description here

你能帮助我吗 ?

答案

解决了self.view.safeAreaInset.bottom ......

当UIView关闭时,我以这种方式设置约束(loginPanelBottomConstraint)的动画:

[UIView animateWithDuration:.3 animations:^{
            self.loginPanelBottomConstraint.constant = 0 + self.view.safeAreaInsets.bottom;
            [self.view layoutIfNeeded];
        }];

面板打开时:

[UIView animateWithDuration:.3 animations:^{
                self.loginPanelBottomConstraint.constant = 245
                [self.view layoutIfNeeded];
            }];

以上是关于使用Autolayout为UIView设置动画的主要内容,如果未能解决你的问题,请参考以下文章

自动布局中断 UIView 动画

如何对使用了autolayout的UIView添加动画

同时使用不同的动画曲线为 AutoLayout 约束设置动画

Swift Animation Enclosure 不会设置动画

从 Nib 加载的 UIView,手动调用 autolayout

如何使用autolayout将UIScrollView滚动到viewWillAppear的底部,没有可视化动画