Ios 如果宽度不够,按钮的高度是否会增加?

Ios 如果宽度不够,按钮的高度是否会增加?,ios,uibutton,autolayout,Ios,Uibutton,Autolayout,我需要一个按钮通过自动布局进行设置,如果水平空间不足,即旋转后,高度将增加。我对父视图有一个前导和尾随约束,在纵向模式下,空间不足,因此我考虑不减小字体大小,而是增加高度,并为换行设置换行。我在试验大小类,但在某种程度上总是使用wCompact hAny,因为我在iPhone上进行测试。所以,为不同大小的类设置不同的按钮高度没有效果 有人知道如何通过自动布局约束根据可用按钮宽度和内容设置按钮高度吗 在iPhone上,下面的按钮需要两行,不是30px,而是大约30px。60像素 你为什么用按钮?这

我需要一个按钮通过自动布局进行设置,如果水平空间不足,即旋转后,高度将增加。我对父视图有一个前导和尾随约束,在纵向模式下,空间不足,因此我考虑不减小字体大小,而是增加高度,并为换行设置换行。我在试验大小类,但在某种程度上总是使用wCompact hAny,因为我在iPhone上进行测试。所以,为不同大小的类设置不同的按钮高度没有效果

有人知道如何通过自动布局约束根据可用按钮宽度和内容设置按钮高度吗

在iPhone上,下面的按钮需要两行,不是30px,而是大约30px。60像素


你为什么用按钮?这不是按钮的用途。如果要显示的文本量足够大,请使用UILabel或UITextView。然后,您可以向其添加手势识别器以捕获点击。

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

,因为我怀疑它不可能与Interface Builder一起使用,我是通过将UIButton子类化来实现的:


@janos-按钮的最大宽度是多少…?没有最大宽度,这取决于正在运行的设备应用程序on@janos-您必须决定按钮的最大宽度。我不会使用sizeWithAttributes方法以编程方式进行此操作
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
    }
}