标签不调整字体大小以适应宽度
Label does not adjust Font Size to fit width
尽管我在 ViewController class:
中输入了这段代码,但我的应用程序看起来是这样的
@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
Please check with label text: "This is the demo to test label text is adjustable or not. You need to test it with this demo data"
您的标签 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 文章 (请参阅 link 了解所有需要代码!!)。我只需要进行两项调整,即添加 label.baselineAdjustment = .alignCenters
和 label.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
属性.
尽管我在 ViewController class:
中输入了这段代码,但我的应用程序看起来是这样的@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
Please check with label text: "This is the demo to test label text is adjustable or not. You need to test it with this demo data"
您的标签 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 文章 (请参阅 link 了解所有需要代码!!)。我只需要进行两项调整,即添加 label.baselineAdjustment = .alignCenters
和 label.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
属性.