【问题标题】:Strange results using CGAffineTransformIdentity使用 CGAffineTransformIdentity 的奇怪结果
【发布时间】: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


【解决方案1】:

问题是由自动布局引起的,使用自动布局时,为 UI 元素设置动画的最佳方法是更改​​约束

【讨论】:

    猜你喜欢
    • 2010-09-14
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 2016-09-26
    • 2013-12-18
    • 2017-10-06
    相关资源
    最近更新 更多