获取调整后的标签字体大小
Posted
技术标签:
【中文标题】获取调整后的标签字体大小【英文标题】:Get adjusted font size of label 【发布时间】:2019-04-10 19:33:27 【问题描述】:我有一个标题标签,我正在调整它的字体大小,以适应标签的大小。我想存储该字体大小的值,以便我可以设置一些按钮的字体大小。
我试图只存储标签的 pointSize,但这只是给我未调整的值,而不是实际有效的值。
这样做的原因是,我希望标签和按钮中所有文本的大小在不同大小的 iPad 屏幕上看起来都不错。但我正在努力保持跨多个元素的大小相同。
class ViewController: UIViewController
@IBOutlet weak var essenceButton: UIButton!
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var tribesButton: UIButton!
@IBOutlet weak var creaturesButton: UIButton!
@IBOutlet weak var monstersButton: UIButton!
@IBOutlet weak var musesButton: UIButton!
@IBOutlet weak var newsletterButton: UIButton!
override func viewDidLoad()
super.viewDidLoad()
self.titleLabel.adjustsFontSizeToFitWidth = true
let fontsize = self.titleLabel.font.pointSize
self.essenceButton.titleLabel?.font = essenceButton.titleLabel?.font.withSize(fontsize)
self.tribesButton.titleLabel?.font = tribesButton.titleLabel?.font.withSize(fontsize)
【问题讨论】:
【参考方案1】:在viewDidLoad()
,视图及其子视图(包括标签)还没有为设备屏幕布局,所以标签的字体大小没有改变。
您应该可以在viewWillLayoutSubviews()
中执行此操作:
override func viewWillLayoutSubviews()
super.viewWillLayoutSubviews()
view.layoutIfNeeded()
// Code to adjust font of the other UI items here
【讨论】:
遗憾的是我仍然得到相同的结果。也试过 viewDidLayoutSubviews();但这似乎也不起作用。 啊,是的。这个***.com/questions/2396715/… 的答案应该对你有所帮助。如果您用于源字体的标签具有动态大小,则在视图布置其子视图后,您仍需要这样做。以上是关于获取调整后的标签字体大小的主要内容,如果未能解决你的问题,请参考以下文章