我正在尝试将UIView的高度从1px的高度设置为41px的高度。它现在有用了,但它不是从底部到顶部的动画视图,而是从顶部到底部。
以下是我用来使其上下动画的代码
func animateBackgroundHeightUp() {
print("animate")
UIView.animate(withDuration: 0.5, animations: {
self.personBg.frame.size.height = 41
})
}
func animateBackgroundHeightDown() {
print("animate")
UIView.animate(withDuration: 0.5, animations: {
self.personBg.frame.size.height = 1
})
}
我想我必须弄清楚如何设置原点y,但我似乎无法找到一个快速的3例子。
修改
func animateBackgroundHeightUp() { print("animate") UIView.animate(withDuration: 0.5, animations: { self.personBg.frame.size.height = 41 self.personBg.frame.origin.y = -41 }) }
func animateBackgroundHeightDown() { print("animate") UIView.animate(withDuration: 0.5, animations: { self.personBg.frame.size.height = 1 self.personBg.frame.origin.y = 41 }) }
最终为我工作的是这种配置。但我很困惑为什么原点需要20?
func animateBackgroundHeightUp() {
print("animate")
UIView.animate(withDuration: 0.25, animations: {
self.personBg.frame.size.height = 41
self.personBg.frame.origin.y = 20
})
}
func animateBackgroundHeightDown() {
print("animate")
UIView.animate(withDuration: 0.25, animations: {
self.personBg.frame.size.height = 1
self.personBg.frame.origin.y = 59.9
})
}
通过在负载上打印出原始y的值来计算59.9数字。
答案 0 :(得分:2)
iOS视图中的原点是屏幕的左上角。视图的框架将原点固定在左上角,高度表示它向下延伸的距离。
如果你增加一个视图的高度,它的顶部不会移动 - 它的底部会向下延伸。
如果您希望视图看起来向上增长,则需要增加高度,同时减少原点数量。