我在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,相对于超视图定位。按钮框架是正确的,它只是更改的字体大小。
我已尝试明确设置adjustsFontSizeToFitWidth
和contentMode
,但这些都没有效果。有趣的是,如果我在视图中添加一个普通的UILabel
,这就可以了。
有关正在发生的事情的任何建议吗?
答案 0 :(得分:1)
我设法通过在动画前将高度显式设置为非零值来避免此问题:
constraint.constant = 1
self.view.layoutIfNeeded()
self.view.setNeedsUpdateContraints()
// do animation
这解决了这个问题,虽然这感觉就像是我在一开始就没做错的事情。
答案 1 :(得分:0)