swift中UILabel的彩色动画
Posted
技术标签:
【中文标题】swift中UILabel的彩色动画【英文标题】:Color Animation of UILabel in swift 【发布时间】:2016-03-20 12:29:21 【问题描述】:我想要一个 UILabel 填充屏幕宽度并且颜色为红色的设置。当点击按钮时,我希望红色标签移到屏幕右侧,同时从屏幕左侧进入绿色的 UILabel。
我能想到的唯一方法是拥有两个不同的 UILabel 并为它们设置动画以在屏幕上移动和移动。
我是否可以只使用一个 UILabel 但固定在屏幕上并在该 UILabel 中设置颜色变化动画,这样看起来红色已从屏幕右侧移出,而绿色已从左侧移到屏幕上?
【问题讨论】:
【参考方案1】:据我所知,您需要使用两个单独的标签。以下是制作动画的方法:
您可以将绿色标签放在屏幕上与红色标签相同的约束条件下,然后首先将其设置为离屏(在 viewDidLoad 中运行此代码):
playAgainButton.center = CGPointMake(playAgainButton.center.x - 500, playAgainButton.center.y)
在我看来,您希望红色标签从屏幕上移到屏幕左侧,而绿色标签从屏幕外移到屏幕左侧...这是动画:
UIView.animateWithDuration(0.5, animations: () -> Void in
self.redLabel.center = CGPointMake(self.redLabel.center.x + 500, self.redLabel.center.y)
self.greenLabel.center = CGPointMake(self.redLabel.center.x + 500, self.greenLabel.center.y)
)
你总是可以用动画来改变持续时间(我把它设置为 0.5 秒)
希望这会有所帮助!
【讨论】:
Hi Dan 对动画的帮助会很棒。我有生成标签背景颜色的代码,但不确定如何为它们设置动画。我需要动画从红色变为绿色,从屏幕右侧移出 10 次。谢谢。 当然!我可以在几个小时内将其发送给您 @PeterGaffney 我编辑了我的答案!如果您还需要什么,请告诉我! 如果您使用的是 AutoLayout(默认),那么直接为视图的位置设置动画效果并不可靠。一旦你做了一些触发布局更新的事情,视图就会迅速回到原来的位置。相反,您需要将约束连接为出口,并对约束的更改进行动画处理。【参考方案2】:这可能,但您的绿色标签只有在红色移出视图后才能看到,因为我们正在尝试使用相同的 UILabel。你可以使用 UIView animateWithDuration 来做到这一点。您需要使用 Frame 来处理约束。首先,您需要从左到右为您的标签设置动画,直到它移动到屏幕上,并在完成块中将其框架重置到最左端并将其从左到右移动到屏幕上。 只需检查以下显示和隐藏视图的动画:
https://github.com/quantumarun/BottomUp-Animation
【讨论】:
谢谢你的答案,将你的答案和dans的答案结合起来就是工作:)以上是关于swift中UILabel的彩色动画的主要内容,如果未能解决你的问题,请参考以下文章