簡體   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