如果我为视图控制器的视图的边界原点设置动画:
UIView.animate(withDuration: 1) { self.view.bounds.origin.y = 20 }
其所有子视图均向上动画20点。但是我以为我只是将边界原点向下移动了20点,所以子视图为什么不向下移动20个点?执行此动画时实际上发生了什么?
或者仅仅是在边界坐标系中,正数是向上的?
我相信您可能将视图的bounds与视图的frame混淆。
bounds
frame
但是我以为我只是将边界原点向下移动了20点,所以子视图为什么不向下移动20点?
[否,如果您将frame(此视图位于其父视图的坐标系中)下移了20,则它(及其子视图)将下降20。但是您调整了bounds,而不是frame ]。
执行此动画时实际上发生了什么?
为了使查看更容易一些,我将有问题的视图赋予其自己的背景色,以便您可以相对于其子视图查看该视图。在下面,我将界限移了50点。通过将origin的bounds从0,0更改为0,50,我们说的是“此视图自身坐标系的左上角不再是0,0,而是0,50”,从而将其所有子视图上移50:
origin