gpt4 book ai didi

ios - CGAffineTransform 动画没有在正确的位置结束

转载 作者:行者123 更新时间:2023-11-29 12:34:35 26 4
gpt4 key购买 nike

我正在对 UILabel 应用翻译,这应该导致标签在其开始的相同 x 位置结束,但由于某种原因它似乎卡在左边。

[UIView animateWithDuration:1 delay:0 usingSpringWithDamping:0.1 initialSpringVelocity:0.2 options:UIViewAnimationOptionCurveEaseInOut animations:^{

NSLog(@"PLAYLABEL BEGIN X %f", self.playLabel.frame.origin.x);

self.playLabel.transform = CGAffineTransformMakeTranslation(-10, 0);
self.playLabel.transform = CGAffineTransformMakeTranslation(+20, 0);
self.playLabel.transform = CGAffineTransformMakeTranslation(-10, 0);

} completion:^(BOOL finished) {

NSLog(@"PLAYLABEL DONE X %f", self.playLabel.frame.origin.x);

}];

动画前标签的 origin.x 为 119.500000,完成后 origin.x 为 109.500000。我对翻译的应用方式有误吗?如果我从原点变换 -10,然后从当前位置变换 +20,那么标签应该只从原点 +10。因此 -10,应该导致 label.x 回到原来的位置。

最佳答案

CGAffineTransformMake 创建一个转换矩阵。看起来您认为您创建的 3 个矩阵是按顺序应用的。但是,您正在两次覆盖矩阵。当动画持续时间被调用时,它应用 self.playlabel.transform,这等于您最后一次设置它:CGAffineTransformMakeTranslation(-10, 0);

关于ios - CGAffineTransform 动画没有在正确的位置结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26703132/

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