【问题标题】:UIButton font size issue inside UIView animationUIView动画中的UIButton字体大小问题
【发布时间】:2016-07-11 09:07:47
【问题描述】:

我对 UIView 中的 UIButtons 有一个奇怪的问题。视图最初被限制为 0 的高度,我正在使用

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

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

    }) { (finished) in

    }

这非常有效,除了放置在其中的任何 UIButton 之外,动画视图的所有内容都按预期显示。

按钮的titleLabel 字体大小在动画期间从 0 增加到正确的大小。这些按钮没有什么特别之处;它们设置为 18 的系统字体,相对于 superview 定位。按钮框架是正确的,只是字体大小发生了变化。

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

关于发生了什么有什么建议吗?

【问题讨论】:

    标签: ios swift uibutton uiviewanimation ios-autolayout


    【解决方案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
    猜你喜欢
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多