繁体   English   中英

Autolayout动画UIView的x / y位置,而不改变宽度/高度

[英]Autolayout animate x/y position of UIView without changing width/height

我正在尝试习惯使用Autolayout和约束而不是带帧的动画。 在我的项目中,我在屏幕顶部附近有一个UIView ,我正试图直接向下(y位置)制作动画。 我知道我必须修改约束常量值,但这样做会降低我视图的高度,而不是像我想要的那样“向下”推动它。 这是我的代码:

self.topConstraint.constant = 180;

[UIView animateWithDuration:0.5f animations:^{
    [self.theView layoutIfNeeded];
} completion:^(BOOL finished) {

}];

topConstraint是ViewController视图顶部和theView之间的垂直空间约束。

theView其他限制包括:

  • 中心X对齐

  • 水平空间

  • 垂直空间( self.topConstraint

  • 垂直空间(表示theView与ViewController视图底部之间的空间)

  • 固定宽度

  • 固定高度

如何修改约束值以简单地更改theView的位置而不影响其宽度/高度?

您应该删除约束:

垂直空间(表示View与ViewController视图底部之间的空间)

因为您不希望高度发生变化(您将其固定)并且您正在使用其他约束指定x(中心约束)和y(其他顶点约束)位置,因此不需要。

您的Horizontal Space约束也可能不是必需的(因为您有一个Center X Alignment约束) - 可能需要水平空间,但更有可能在该视图上以此为中心。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM