【问题标题】:Animate WKInterfaceLabel with text change apple watch swift使用文本更改 Apple Watch swift 为 WKInterfaceLabel 设置动画
【发布时间】:2017-09-13 04:54:56
【问题描述】:

我正在开发一个 Apple Watch 应用程序。在应用程序中,我有一个视图,用户可以在 3 个给定结果之间左右滑动。我正在使用 WKInterfaceLabel 来显示结果信息。每次滑动时,标签都会更新为新文本。

查看截图:

我想在滑动时为文本的变化设置动画。我该怎么做?

我们将不胜感激提供的任何帮助。 谢谢!

【问题讨论】:

  • 我是否理解你的意思,你只有一个页面,你想通过左右滑动来改变标签的内容?
  • @ReinhardMänner 是的,你是对的。
  • 您是否尝试将WKSwipeGestureRecognizer(docu here) 添加到您的页面?
  • 我正在使用它来滑动,但我想为标签文本的变化添加动画效果。
  • 对不起,我不明白这一点。但是你想象的是什么样的动画呢?

标签: ios animation apple-watch watchos-2 wkinterfacelabel


【解决方案1】:

这不是很优雅,但应该可以:
您可以淡出WKInterfaceLabel 的内容,并在其位置淡入另一个标签。因此,将 2 个 WKInterfaceLabel 对象放在同一个位置。其中一个是可见的 (alpha = 1.0),另一个是不可见的 (alpha = 0.0)。
滑动时,确定应显示的新值,并将其设置为不可见标签。
然后,使用WKInterfaceController 的函数animate(withDuration:animations:) 为过渡设置动画。在动画块中,根据需要更改alpha 值,类似于

animateWithDuration(1.0) {
    self.visibleLabel.setAlpha(0.0)
    self.invisibleLabel.setAlpha(1.0)
}  

希望这会有所帮助!

【讨论】:

  • 我明白了。这是一种解决方法,但它会起作用。不过好主意。谢谢!
  • 我将在宽限期内奖励赏金。如果我有更好的解决方案,我会等待。希望你能理解!
  • 没问题!而且,当然,改变上标签的alpha值就足够了……
  • 我试过这个,但效果不太好。你还有什么建议吗。谢谢!
【解决方案2】:

尝试:-

 func labelimage(img: UIImageView) {
        print(labelrate.hidden)
        if (labelrate.hidden) {
            UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: {
                self.labelrate.alpha = 1
            }, completion: nil)
        }
        else {
            UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: {
                self.labelrate.alpha = 0
            }, completion: nil)
        }
        self.labelrate.hidden = !self.labelrate.hidden
    }

【讨论】:

  • 我在 watchOS 中做这项工作,而 uiimageview 和 uiview 在 watchOS 中不可用。你能提供任何其他解决方案吗?另外,什么是标签率?为什么要在函数中传递 img?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多