繁体   English   中英

标签不会调整字体大小以适应宽度

[英]Label does not adjust Font Size to fit width

在此处输入图片说明

尽管我在 ViewController 类中输入了以下代码,但这就是我的应用程序的外观:

@IBOutlet var label: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    label.text = "Hello World"
    label.adjustsFontSizeToFitWidth = true
    label.numberOfLines = 1
    label.minimumScaleFactor = 0.1
}

您的文本数据不超过label宽度,这就是为什么标签text font与已设置的相同。 如果您的文本数据大于标签width那么它将根据width adjust font

请检查标签文本: “这是测试标签文本是否可调的演示。您需要使用此演示数据进行测试”

您的标签font将根据宽度进行调整。

如果给定的文本大于标签的宽度,字体将进行调整。

在操场上试试这个:

//: A UIKit based Playground for presenting user interface

import UIKit
import PlaygroundSupport

class MyViewController : UIViewController {
 override func loadView() {
    let view = UIView()
    view.backgroundColor = .white

    let label = UILabel()
    label.frame = CGRect(x: 150, y: 200, width: 200, height: 20)

    label.adjustsFontSizeToFitWidth = true
    label.numberOfLines = 1
    label.backgroundColor =  UIColor.lightGray

    label.text = "Hello World! How are you doing today? "
    label.textColor = .black

    view.addSubview(label)
    self.view = view
 }
}
 // Present the view controller in the Live View window
 PlaygroundPage.current.liveView = MyViewController()

结果如下: 在此处输入图片说明

通过遵循这篇简单的gitconnected文章(请参阅链接以获取所有必需的代码!!),我能够让我的 UILabel 字体动态调整到适合其父级的必要大小。 我只需要进行两个调整,即添加线label.baselineAdjustment = .alignCenterslabel.numberOfLines = 1以便我的标签创建现在看起来像这样......

let dynamicFontLabel: UILabel = {
    let label = UILabel()
    label.font = .systemFont(ofSize: 40)
    label.textAlignment = .center
    label.numberOfLines = 1;
    label.textColor = .black
    label.adjustsFontSizeToFitWidth = true
    label.baselineAdjustment = .alignCenters
    label.translatesAutoresizingMaskIntoConstraints = false
    return label
}()

label.baselineAdjustment = .alignCenters属性确保如果我的字体太大并且需要缩小尺寸,我的文本仍然会在 UILabel 中保持垂直居中。 我也只希望我的文本只跨越一行,所以如果你想要更多,你可以删除label.numberOfLines = 1属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM