UIView动画中的UIButton字体大小问题
Posted
技术标签:
【中文标题】UIView动画中的UIButton字体大小问题【英文标题】:UIButton font size issue inside UIView animation 【发布时间】:2016-07-11 09:07:47 【问题描述】:我对 UIView 中的 UIButton
s 有一个奇怪的问题。视图最初被限制为 0 的高度,我正在使用
UIView.animateWithDuration(0.6, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations:
heightConstraint!.constant = height
self.view.layoutIfNeeded()
) (finished) in
这非常有效,除了放置在其中的任何 UIButton 之外,动画视图的所有内容都按预期显示。
按钮的titleLabel
字体大小在动画期间从 0 增加到正确的大小。这些按钮没有什么特别之处;它们设置为 18 的系统字体,相对于 superview 定位。按钮框架是正确的,只是字体大小发生了变化。
我尝试过明确设置adjustsFontSizeToFitWidth
和contentMode
,但这些都没有效果。有趣的是,如果我在视图中添加一个普通的UILabel
,就可以了。
关于发生了什么有什么建议吗?
【问题讨论】:
【参考方案1】:通过在动画之前将高度显式设置为非零值,我设法避免了这个问题:
constraint.constant = 1
self.view.layoutIfNeeded()
self.view.setNeedsUpdateContraints()
// do animation
这解决了这个问题,虽然感觉就像是在解决我一开始做的不对的事情。
【讨论】:
在动画和约束设置之前调用 self.view.layoutIfNeeded() 就可以了。【参考方案2】:试试clipsToBounds = true
,文本隐藏在按钮内
当height为0或1时,myView为
设置clipsToBounds = true
后,就是这个样子
注意 Border = 1 and height = 1 在这里只是为了表示。即使我遇到了这个奇怪的问题。但是将边界设置为true后文本不显示
【讨论】:
恐怕没有效果! 检查这个helps以上是关于UIView动画中的UIButton字体大小问题的主要内容,如果未能解决你的问题,请参考以下文章
iPhone UIView 动画禁用 UIButton 子视图