1

我希望有人可以帮助我理解为什么我的 tvOS 动画没有运行。

在我的代码中,我有一个这样的函数:

func testAnimation() {
    clockLabel.alpha = 0.0
    UIView.animateWithDuration(1.0, animations: {
        self.clockLabel.alpha = 1.0
    })
}

testAnimation()在我的内部打电话viewDidLoad(),但似乎没有任何动画发生。

我已经测试了几种不同类型的动画,从位置到不透明度,但似乎没有动画真正在模拟器中运行。

此时,我的应用没有焦点。我要做的就是加载一个空白UIView,中间有一个淡入淡出的标签。

4

3 回答 3

4

您正在尝试在显示UILabel之前对其进行动画处理。将您的动画从 移动viewDidLoad()viewDidAppear()

于 2015-09-28T11:44:54.380 回答
0

我可以确认这种行为,因为这也发生在我身上。我所做的是将延迟设置为 0.1(afterDelay :),它“足够好”

另一方面,DID 真正起作用的是为我的视图设置转换。例如(虽然是 objc):

    CGAffineTransform scaleTransform = CGAffineTransformMakeScale(0.5,0.5);
         [UIView animateWithDuration: 0.5 animations:^{
         _myView.transform = scaleTransform;
    } completion: nil]

可能是 tvOS 的 bug

于 2015-09-28T10:27:21.257 回答
0

尝试使用 UIView 动画,像这样(Swift):

clockLabel.alpha = 0
  UIView.animateWithDuration(0.5, delay: 0.0, options: .Linear, animations: {
    self.clockLabel.alpha = 1.0

  }, completion: { finished in
    // you may add some code here to make another action right after the animation end, or just delete this comment :)
  })

这对我们有用。

于 2015-10-10T06:30:13.083 回答