ios - 变换标签字体大小

标签 ios swift animation label transform

我有两个快捷方式。 它们每个都有初始属性,例如字体大小和不透明度。 动画之前,值为

labelOne.font = labelOne.font.withSize(109)
labelOne.alpha = 1.0

labelTwo.font = labelTwo.font.withSize(40)
labelTwo.alpha = 0.7

动画之后,它们应该具有以下属性:

labelOne.font = labelOne.font.withSize(40)
labelOne.alpha = 0.7

labelTwo.font = labelTwo.font.withSize(109)
labelTwo.alpha = 1.0

对于转换,我使用CGAffineTransform() 示例:

labelOne.transform = CGAffineTransform(scaleX: //some value? , y: //someValue?)

但是我是编程新手,不太明白它是如何工作的。告诉我如何编写这个调整字体大小的动画?

最佳答案

要在两个标签上实现动画,如您所愿,通过控制字体大小和 Alpha,您可以这样实现:

// Before animation
labelOne.font = labelOne.font.withSize(109)
labelOne.alpha = 1.0

labelTwo.font = labelTwo.font.withSize(40)
labelTwo.alpha = 0.7
UIView.animate(withDuration: 1, animations: {
    // This will be values set during the animation of 1 second
    self.labelOne.font = labelOne.font.withSize(40)
    self.labelOne.alpha = 0.7

    self.labelTwo.font = labelTwo.font.withSize(109)
    self.labelTwo.alpha = 1.0
})

同时,CGAffineTransform(scaleX:, y:) 允许您缩放 View 的 X,Y 坐标值(例如 labelOne),但要通过动画实现这一点,您必须将在动画 block 内:

// normal state
labelOne.transform = CGAffineTransform(scaleX: 1, y: 1)
labelTwo.transform = CGAffineTransform(scaleX: 0.7, y: 0.7)
UIView.animate(withDuration: 1, animations: {
    // State reached through the animation
    labelOne.transform = CGAffineTransform(scaleX: 0.7, y: 0.7)
    labelTwo.transform = CGAffineTransform(scaleX: 1, y: 1)
})

要实现更平滑的过渡:

UIView.transition(with: labelOne, duration: 0.25, options: .transitionCrossDissolve, animations: {
    self.labelOne.font = UIFont.systemFont(ofSize: 40)
}) { _ in }

关于ios - 变换标签字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60005497/

相关文章:

附加 onClickListener 时,android ListView 触摸动画消失了

ios - Swift:按整数加载级别类

ios - 核心数据计算和数据分组

ios - 日历-isDateInToday:date 00:15今天不在吗?

objective-c - 如何识别两个字符串之间的变化增量?

ios - 安全飞地 : update SecAccessControlCreateFlags after key creation

Safari 中的 CSS 动画延迟错误

jquery - 如何在 Bootstrap 3 中制作进度条动画?

iphone - iOS 在单击按钮时加载全新的 View

ios - 自定义导航栏不更改/显示标题