动画更改UILabel的字体

Chi*_*iko 9 objective-c uilabel uifont ios

我需要一种方法来改变UILabel的字体动画...我看到很多方法来改变字体大小的变化,但我需要一种方法来改变它的类型(例如粗体< - >薄)

非常感谢任何帮助!

Cyr*_*lle 13

两个字体之间没有离散映射(在数学意义上).

如果你可以通过斜坡(10.1,10.2,10.3,......)从大小10变为大小11,那么就没有"helvetica neue和helvetica neue bold之间45%的东西".

你能做的最接近的是在各个字母的CGPath之间进行变换,但这涉及到CoreText的大量工作.

同时,我只是建议你进行简单的交叉淡入淡出.

也许将来(眨眼,眨眼)会有一些框架来帮助你完成这类任务.


Sir*_*III 5

这可能对搜索此答案的人有所帮助:

要从一种字体淡入另一种字体,请执行以下操作:

UIView.transition(with: label, duration: 0.25, options: .transitionCrossDissolve, animations: {
    self.label.font = UIFont.systemFont(ofSize: 15)
}) { isFinished in }
Run Code Online (Sandbox Code Playgroud)

当有文字时转到:

UIView.transition(with: label, duration: 0.25, options: .transitionCrossDissolve, animations: {
    self.label.font = UIFont.boldSystemFont(ofSize: 15)
}) { isFinished in }
Run Code Online (Sandbox Code Playgroud)

(Gif 显示不同的字体)

在此处输入图片说明