【问题标题】:UIButton auto-adjust Button font size SwiftUIButton 自动调整 Button 字体大小 Swift
【发布时间】:2015-09-21 11:51:49
【问题描述】:

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

        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))  

【问题讨论】:

    标签: ios swift uibutton


    【解决方案1】:

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

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

    所有标签都可以调整文本大小。

    为了将按钮调整为 titleLabel,请使用 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%。现在您可以根据需要调整约束。

    这在你的代码中工作吗?

    【讨论】:

    • 正如您在我的代码示例中看到的那样,它不适用于我的 Buttons[!]
    • 对于这段代码,我使用标签。在您的应用程序中,您可以尝试删除按钮并使用标签。
    • 我将指令引用到“btn.titleLabel”,因此它也适用于标签。但正如您在上面的屏幕截图中看到的那样,它不起作用...... :(
    • 问题是打开按钮。您的btn.titleLabel 确实适应了文本,但按钮没有适应titleLabel。你明白吗?
    • 还有没有办法让标签适合按钮?
    【解决方案2】:

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

    【讨论】:

    • 这只是削减了字符串中太长的部分,所以这不是一个选项:(
    猜你喜欢
    • 2012-08-25
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2011-02-28
    相关资源
    最近更新 更多