如果宽度不够,UIButton的高度会增加?

时间:2014-09-16 10:50:58

标签: ios uibutton autolayout

如果水平空间不够,我需要一个按钮来设置autolayout 高度将增加。轮换后。我对父视图有一个前导和尾随约束,在纵向模式下缺少空间,所以我考虑不减小字体大小,但增加高度并为Word Wrap设置Line Break。我正在试验size classes,但在某种程度上总是使用wCompact hAny,因为我在iPhone中进行测试。因此,为不同大小的类设置不同的按钮高度没有效果。

任何人都知道如何通过自动布局约束在可用按钮宽度和内容上设置依赖按钮高度?

下面的iPhone按钮需要两行,而不是30px,但是appr。 60像素。

enter image description here

3 个答案:

答案 0 :(得分:0)

你为什么使用按钮?这不是按钮的用途。如果您要显示该数量的文字,请使用UILabelUITextView。然后,您可以为其添加手势识别器以捕捉水龙头。

答案 1 :(得分:0)

您可以使用UILabel并可以使用UITapGestureRecognizer。并在nib文件中设置行数= 0,并有一个轻击手势动作。它将像一个几乎没有代码的按钮一样工作

答案 2 :(得分:0)

因为我很怀疑使用Interface Builder我无法使用UIButton的子类化来实现它:

class DynamicHeightButton: UIButton {

    override func layoutSubviews() {
        super.layoutSubviews()

        let size = (self.titleForState(UIControlState.Normal)! as NSString).boundingRectWithSize(CGSizeMake(self.bounds.size.width, CGFloat.max), options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: [NSFontAttributeName : UIFont.systemFontOfSize(17)], context: nil)
        self.bounds.size.height = size.height + 8
    }
}