[英]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.