【发布时间】:2013-06-24 19:27:07
【问题描述】:
我在笔尖中有几个 UI 元素,它们使用自动布局和约束进行定位。当视图加载时,我使用
将元素移出屏幕[self.button setTransform:CGAffineTransformMakeTranslation(-self.button.frame.origin.x * 2 + self.button.frame.size.width, 0)];
然后当视图出现时,我使用以下命令将按钮缓和到页面上的正确位置。然而,它似乎走得太远了。
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:2];
[self.button setTransform:CGAffineTransformIdentity];
[UIView commitAnimations];
我做错了吗?有没有更好的方法可以使用 CGAffineTransform 将按钮移出屏幕?
任何帮助都会很棒
【问题讨论】:
-
按钮的原始框架似乎不是您期望的那样。如果您在此处注释掉将按钮移出屏幕的第一行代码,那么按钮在哪里。
-
如果我注释掉第一行,则该按钮会出现在屏幕上的正确位置,这就是为什么我对 CGAffineTransformIdentity 不起作用的原因感到困惑。我猜它与自动布局和约束有关
-
首先:您应该改用基于块的动画。
标签: objective-c core-animation core-graphics