gpt4 book ai didi

iOS 动画 1+2 = 3. 3-2 != 1

转载 作者:行者123 更新时间:2023-11-28 20:35:47 25 4
gpt4 key购买 nike

iPad - iOS 5.1 - Xcode 4.3.2

当弹出键盘时,我将 UIImageView 的 y 原点设置为“x”当键盘关闭时,我通过相同的“x”将其动画化

所以键盘弹出,图像上升 X,键盘下降,图像下降 x,但它并没有在同一个地方结束!你去上升 60,下降 60,你不在同一个地方!它进一步向下,好像坐标系在键盘出现和消失之间发生了变化。这绝对让我发疯。我不明白为什么会这样。

//add gesture recognizer when keyboard appears
-(void)keyboardWillShow:(NSNotification *) note {

[self.view addGestureRecognizer:tapRecognizer];

// Setup the animation
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3f];
[UIView setAnimationCurve:UIViewAnimationOptionCurveEaseInOut];
[UIView setAnimationBeginsFromCurrentState:YES];

// The transform matrix: Logo Image

CGAffineTransform moveLogo = CGAffineTransformMakeTranslation(0, -60);
self.logoImageView.transform = moveLogo;

// Commit the changes
[UIView commitAnimations];
}

//add gesture recognizer when keyboard appears
-(void)keyboardWillHide:(NSNotification *) note {

[self.view removeGestureRecognizer:tapRecognizer];

// Setup the animation
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3f];
[UIView setAnimationCurve:UIViewAnimationOptionCurveEaseInOut];
[UIView setAnimationBeginsFromCurrentState:YES];

// The transform matrix: Logo Image

CGAffineTransform moveLogo = CGAffineTransformMakeTranslation(0, 60);
self.logoImageView.transform = moveLogo;

// Commit the changes
[UIView commitAnimations];
}

最佳答案

那是因为你没有翻译它,当你使用 CGAffineTransformMakeTranslation 时,你说的是给我这些坐标而不是给我这个偏移量。换句话说,make translation 为您提供来自identity 矩阵的翻译。你想要的功能是 CGAffineTransformTranslate。这会将翻译应用于当前转换(作为第一个参数传递)。

关于iOS 动画 1+2 = 3. 3-2 != 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610141/

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