gpt4 book ai didi

ios - 奇怪的行为 CGAffineTransform

转载 作者:行者123 更新时间:2023-11-30 12:31:35 24 4
gpt4 key购买 nike

我尝试为 UILabel 设置动画:

let label: UILabel = UILabel()
var transform = CGAffineTransform.identity

UIView.animate(withDuration: 2, animations: {
self.transform = self.transform.translatedBy(x: 0, y: -150)
self.transform = self.transform.scaledBy(x: 2, y: 2)
self.label.transform = self.transform
})

效果很好。我有一个按钮,并添加了一个选择器,这样当按下它时,标签会再次出现动画:

func performSearch() {
UIView.animate(withDuration: 2, animations: {
self.transform = self.transform.translatedBy(x: 0, y: -300)
self.label.transform = self.transform
})
}

但它实际上所做的是按原始状态缩小标签,将其向下移动到屏幕底部,然后进行动画处理,尽管我希望它做的只是向上移动。为什么?

最佳答案

变换可能有点令人困惑...因为您已经缩放变换,进一步的变换似乎是通过缩放“自动调整”的,但不是以一种真正直观或明显的方式。

这可能会帮助您走得更远:

// initial animation
UIView.animate(withDuration: 2, animations: {
self.transform = self.transform.translatedBy(x: 0, y: -150)
self.transform = self.transform.scaledBy(x: 2, y: 2)
self.label.transform = self.transform
})

// "resuming" animation
func performSearch() {
let distance: CGFloat = -300 / 2
self.transform = self.transform.translatedBy(x: 0, y: distance)
self.label.transform = self.transform

UIView.animate(withDuration: 2, animations: {
self.transform = self.transform.translatedBy(x: 0, y: distance)
self.label.transform = self.transform
})


}

关于ios - 奇怪的行为 CGAffineTransform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43471119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com