【问题标题】:NSTimer blocks other animationsNSTimer 阻止其他动画
【发布时间】:2013-05-04 15:44:59
【问题描述】:

说明

我有一个NSTimer,每秒更新一个UILabel。当按下UIButton 时,我还有另一个UIImageView 在屏幕上滑动。

问题

问题是当NSTimer更新UILabel时,UImageView的动画停止完成。

问题

请告诉我如何在不影响其他动画的情况下更新计时器?

【问题讨论】:

  • 给我们看一些代码。你可能在主线程上做的太多了
  • @Stavash 他可能只是打开了自动布局。
  • 听起来不错

标签: ios iphone objective-c nstimer


【解决方案1】:

这是打开auto layout 的常见症状,但可能试图通过调整framecenter 在屏幕上滑动它。自动布局是 iOS 6+ 的一项功能,可控制各种 UIView 元素的位置和大小。不幸的是,当您启用自动布局时,每次更改标签的值时,它都会重新应用指示标签应放置在何处的约束,从而挫败您对其进行动画处理的尝试。

两种解决方案:

  1. 通过打开故事板或 NIB 关闭自动布局,单击最右侧面板上的第一个“文档检查器”选项卡,然后取消选中“使用自动布局”。

  2. 如果您想使用自动布局,请通过更改约束而不是更改framecenter 来为控件的移动设置动画。有关如何为约束创建 IBOutlet 然后在 animateWithDuration 块中以编程方式更改该约束的示例,请参见 here

参考资料:

【讨论】:

  • Rob,感谢您的详细回答。我会检查这两种解决方案并让你知道。再次感谢。
  • 谢谢罗伯。两种解决方案都有效,但我想针对 iOS 5,所以我将使用第二个。再次感谢:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
相关资源
最近更新 更多