【问题标题】:How to rotate imageview without lagging?如何旋转图像视图而不滞后?
【发布时间】:2013-06-11 19:22:42
【问题描述】:

我在我的应用程序中集成了一个指南针,但问题是旋转它时图像视图滞后。我怎样才能解决这个问题,让它像苹果的应用程序一样以一种很好的方式旋转?

这是我正在使用的代码:

float heading = -1.0f * M_PI * degree / 180.0f;
[UIView animateWithDuration:1.0f delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
    self.compassImageView.transform = CGAffineTransformMakeRotation(heading);
} completion:nil];

这是指南针:

http://i.stack.imgur.com/JXF9A.png

【问题讨论】:

  • 您多久调用一次此代码?
  • 嗯,那是多久一次?您以什么频率从指南针中提取新数据?因为现在听起来你有多个相互对抗的动画。
  • 每 1° 我旋转图像视图。

标签: iphone ios ipad cocoa-touch


【解决方案1】:

只需摆脱 animateWithDuration 持续时间。你不需要它。我猜你想要它,因为你希望动作流畅,但我有一个类似的应用程序可以显示滚动和俯仰,我只是打电话

tiltImage.transform = CGAffineTransformMakeRotation(DegreesToRadians(angle));

而且动作很流畅。

你在这里想多了。 (JustSid 是对的。)

【讨论】:

  • 我按照你刚才说的做了,但仍然滞后。
  • 尝试更多优化。如果你和上次在同一个方向,就不要旋转。
  • 你的 NSLog 有延迟吗?意思是,它们是显示跳跃的坐标还是平滑的?如果你像这个答案建议的那样完全取出动画,那么只会留下你必须在导致延迟的主线程(GUI)上调用其他东西的答案。为您的 DegreesToRadians(angle) 结果放置一个 NSLog 并观察它的更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多