动画字体大小更改

时间:2016-07-02 15:39:39

标签: ios swift animation

我正在尝试做一个小动画,它会改变标签框架并改变字体大小。 我已经看到直接动画字体大小是不可能的。所以我试图使用CGAffineTransform。

这是我到目前为止所尝试的内容:

    UIView.animateWithDuration(1, animations: {
        if self.topConstraint.active {
            self.initialTopConstraint.active = false
            self.initialLeadingConstraint.active = false

            self.label.transform = CGAffineTransformMakeScale(0.5, 0.5)

            self.finalTopConstraint.active = true
            self.finalLeadingConstraint.active = true

        }

        else {
            self.initialTopConstraint.active = true
            self.initialLeftConstraint.active = true

            self.label.transform = CGAffineTransformMakeScale(1.5, 1.5)

            self.finalTopConstraint.active = false
            self.finalLeftConstraint.active = false

        }
        self.view.layoutIfNeeded()
    })

事实上,这是有效的,但我使用自动布局,并且在动画结束时,根本不满足约束。最终约束常数为8,当我在动画结束时打印标签框时,标签距离左边大约13个点,距离顶部大约16个点。

初始框架:

enter image description here

尊重约束但未进行字体大小更改的最终帧:

enter image description here

未遵守约束且更改字体大小的最终帧:

enter image description here

无论如何都要正确组合自动布局和CGAffineTransform?

0 个答案:

没有答案