UIButton自动调整Button字体大小Swift

时间:2015-09-21 11:51:50

标签: ios swift uibutton

我尝试做一些测验并且我的答案按钮有问题。 简单的事实:文本太长,我尝试使用不同的方法为单元格自动调整它。我目前的状态:

        for btn in btnArr{
        btn.titleLabel!.minimumScaleFactor = 0.3
        btn.titleLabel!.numberOfLines = 0
        btn.titleLabel!.adjustsFontSizeToFitWidth = true
        btn.titleLabel?.baselineAdjustment = UIBaselineAdjustment.AlignCenters
        //btn.contentEdgeInsets = UIEdgeInsets(top: 3.0,left: 3.0,bottom: 3.0,right: 3.0)
    }

我希望有人能为我做另外一个选择:)

此致 帕特里克

编辑:

 self.view.addConstraint(NSLayoutConstraint(item: btn.titleLabel!, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: btn, attribute:NSLayoutAttribute.Height, multiplier: 0.99, constant: 0))  

2 个答案:

答案 0 :(得分:3)

使用自动布局,您可以设置按钮之间的间距以及最大和最小尺寸。在所有标签的代码中使用:

self.button.titleLabel.numberOfLines = 0;
self.button.titleLabel.adjustsFontSizeToFitWidth = YES;

使用此标签调整文本大小。

对于titleLabel的adjust按钮,使用titleLabel的自动布局约束。例如:

  [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.button.titleLabel
                                                          attribute:NSLayoutAttributeHeight
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self.view
                                                          attribute:NSLayoutAttributeHeight
                                                         multiplier:0.5
                                                           constant:0]];

此约束将titleLabel的高度定义为self.view高度的50%。现在,您可以根据需要调整约束。

这项工作在你的代码?

答案 1 :(得分:0)

假设单元格的高度相同且字体相同,则可以通过将“numberOfLines”设置为0以外的值(如3或4)来限制文本。