Ios 为视图控制器的边界原点设置动画时实际会发生什么;你的观点是什么?

Ios 为视图控制器的边界原点设置动画时实际会发生什么;你的观点是什么?,ios,swift,uiview,Ios,Swift,Uiview,如果设置视图控制器视图的边界原点的动画: UIView.animate(withDuration: 1) { self.view.bounds.origin.y = 20 } 其所有子视图都向上设置20个点的动画。但是我想我只是将边界原点向下移动了20点,那么为什么子视图不向下移动20点呢?当我执行此动画时,实际发生了什么 或者仅仅是在边界坐标系中,正值是向上的?我相信您可能混淆了视图的边界和视图的框架 但是我想我只是将边界原点向下移动了20点,那么为什么子视图不向下移动20点呢 否,

如果设置视图控制器视图的边界原点的动画:

UIView.animate(withDuration: 1) {
    self.view.bounds.origin.y = 20
}
其所有子视图都向上设置20个点的动画。但是我想我只是将边界原点向下移动了20点,那么为什么子视图不向下移动20点呢?当我执行此动画时,实际发生了什么


或者仅仅是在边界坐标系中,正值是向上的?

我相信您可能混淆了视图的
边界
和视图的
框架

但是我想我只是将边界原点向下移动了20点,那么为什么子视图不向下移动20点呢

否,如果将
(此视图位于其superview的坐标系中)向下移动20,则它(及其子视图)将向下移动20。但是您调整了
边界
,而不是

当我执行此动画时,实际发生了什么

为了让它更容易看到,我会给这个视图提供它自己的背景色,这样你就可以看到它的子视图了。下面,我将边界移动了50点。通过将
边界的
原点
从0,0更改为0,50,我们表示“此视图自身坐标系的左上角不再是0,0,而是0,50”,从而将其所有子视图上移50:


让我困惑的是,在框架的上下文中,up是负数,而在边界的上下文中,up是正数。我假设
(0,0)
是宇宙坐标系上的一个宇宙点(可能是窗口的),从该点(框架或边界)向上和/或向左移动的任何东西都进入了负区域。谢谢你的解释!