使用 minimumScaleFactor 时 UIButton titleLabel 未垂直居中
Posted
技术标签:
【中文标题】使用 minimumScaleFactor 时 UIButton titleLabel 未垂直居中【英文标题】:UIButton titleLabel not vertically centered when using minimumScaleFactor 【发布时间】:2014-06-30 20:49:19 【问题描述】:我有一个 UIButton,文本通常在按钮内居中,直到文本字符串变长并开始按比例缩小文本的大小。然后文本似乎粘在 textField 的底部,而不是停留在按钮的中心。
self.titleBtn.titleLabel.adjustsFontSizeToFitWidth = YES;
self.titleBtn.titleLabel.minimumScaleFactor = .2;
[self.descriptionBtn setTitle:@"T" forState:UIControlStateNormal];
//works normally
但是
[self.descriptionBtn setTitle:@"This a longer title" forState:UIControlStateNormal];
//is vertically lower than center
【问题讨论】:
【参考方案1】:如上所述here :)
您需要使用 UILabel 的 baselineAdjustment
属性label.baselineAdjustment = UIBaselineAdjustmentAlignCenters
【讨论】:
【参考方案2】:斯威夫特 3
label.baselineAdjustment = .alignCenters
对于按钮
button.titleLabel?.baselineAdjustment = .alignCenters
【讨论】:
以上是关于使用 minimumScaleFactor 时 UIButton titleLabel 未垂直居中的主要内容,如果未能解决你的问题,请参考以下文章
UILabel minimumScaleFactor 是如何工作的?
SwiftUI:minimumScaleFactor 没有均匀地应用于堆栈元素
SwiftUI Text.minimumScaleFactor(…)无法正确缩放文本?