UIButton 自动调整按钮字体大小 Swift

pat*_*u22 3 uibutton ios swift

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

        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)
    }
Run Code Online (Sandbox Code Playgroud)

我希望有人能为我提供另一种选择来实现这一目标:)

问候,帕特里克

编辑:

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

Cri*_*ves 5

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

self.button.titleLabel.numberOfLines = 0;
self.button.titleLabel.adjustsFontSizeToFitWidth = YES;
Run Code Online (Sandbox Code Playgroud)

这样所有标签都会调整文本大小。

对于调整按钮到 titleLabel,请使用 titleLabel 自动布局约束。举些例子:

  [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.button.titleLabel
                                                          attribute:NSLayoutAttributeHeight
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self.view
                                                          attribute:NSLayoutAttributeHeight
                                                         multiplier:0.5
                                                           constant:0]];
Run Code Online (Sandbox Code Playgroud)

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

这在你的代码中起作用吗?