UIVut动画中的UIButton字体大小问题

时间:2016-07-11 09:07:47

标签: ios swift uibutton uiviewanimation ios-autolayout

我在UIView中遇到UIButton的奇怪问题。视图最初被约束为0的高度,并且我使用

为约束设置动画
UIView.animateWithDuration(0.6, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: {

        heightConstraint!.constant = height
        self.view.layoutIfNeeded()

    }) { (finished) in

    }

这非常有效,动画视图的所有内容都按预期显示,除了放在里面的任何UIButtons。

按钮' titleLabel字体大小在动画期间从0增加到正确的大小。这些按钮没什么特别之处;它们被设置为系统字体18,相对于超视图定位。按钮框架是正确的,它只是更改的字体大小。

我已尝试明确设置adjustsFontSizeToFitWidthcontentMode,但这些都没有效果。有趣的是,如果我在视图中添加一个普通的UILabel,这就可以了。

有关正在发生的事情的任何建议吗?

2 个答案:

答案 0 :(得分:1)

我设法通过在动画前将高度显式设置为非零值来避免此问题:

constraint.constant = 1
self.view.layoutIfNeeded()
self.view.setNeedsUpdateContraints()

// do animation

这解决了这个问题,虽然这感觉就像是我在一开始就没做错的事情。

答案 1 :(得分:0)

尝试clipsToBounds = true,文字隐藏在按钮

当高度为0或1时,myView为

enter image description here

并在设置clipsToBounds = true之后,就像这样

enter image description here

注意 Border = 1和height = 1只是在这里表示。即使我遇到这个奇怪的问题。但是在将边界设置为true

后,文本不会显示