ios - 为视图控制器视图的边界原点设置动画时实际会发生什么?
问题描述
如果我为视图控制器视图的边界原点设置动画:
UIView.animate(withDuration: 1) {
self.view.bounds.origin.y = 20
}
它的所有子视图都向上动画 20 点。但我以为我只是将边界原点向下移动了 20 点,那么为什么子视图不向下移动 20 点呢?当我执行这个动画时实际发生了什么?
或者仅仅是在边界坐标系中,正向上?
解决方案
我相信您可能会将bounds
视图的视图与视图的视图混淆frame
。
但我以为我只是将边界原点向下移动了 20 点,那么为什么子视图不向下移动 20 点呢?
不,如果您将frame
(该视图在其父视图坐标系中的位置)向下移动 20,那么它(及其子视图)将向下移动 20。但是您调整的是bounds
,而不是frame
.
当我执行这个动画时实际发生了什么?
为了使它更容易看到,我将给有问题的视图赋予它自己的背景颜色,以便您可以看到与它的子视图相关的视图。下面,我将界限移动了 50 个点。通过将 的origin
0 bounds
, 0 更改为 0, 50,我们说“这个视图自身坐标系的左上角不再是 0, 0,而是 0, 50”,从而移动了它的所有子视图上升 50:
推荐阅读
- r - 将鼠标移动到一个点并左右滚动 Rselenium
- django - 显示上传文件的绝对 URL
- vba - 在 Word 文档中突出显示图表标题
- java - 使用子字符串时如何从字符串中删除一个字母
- angular - 字母数字范围验证
- javascript - 从javascript中的不同文件导入数组
- ssh - 在 .ssh 文件夹中找不到 id_rsa
- excel - 在图像上放置自定义文本
- microsoft-graph-api - NextLink 上的 InvalidDeltaToken(Microsoft Graph 日历)
- spring - Spring 5:MVC 控制器参数 pageable 未初始化