问题描述
我有2个UILabel,如下所示:
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = Constants.mainFontColor.withAlphaComponent(0.7)
label.translatesAutoresizingMaskIntoConstraints = false
label.isUserInteractionEnabled = false
label.sizeToFit()
return label
}()
private lazy var valueLabel: UILabel = {
let label = UILabel()
label.textColor = Constants.mainFontColor
label.translatesAutoresizingMaskIntoConstraints = false
label.isUserInteractionEnabled = false
label.sizeToFit()
return label
}()
然后将这些标签放入UIStackView:
private lazy var stackView: UIStackView = {
let stack = UIStackView(arrangedSubviews: [titleLabel,valueLabel])
stack.translatesAutoresizingMaskIntoConstraints = false
stack.axis = .horizontal
stack.spacing = 5
stack.alignment = .firstBaseline
addSubview(stack)
return stack
}()
然后我创建了几个这样的实例:
private lazy var flightNumber: FuelSheetHeaderField = {
return FuelSheetHeaderField(title: FuelSheetStringsField.flightNumber.title.localized,value: viewModel.flightNumber,titleFontSize: 17,valueFontSize: 24)
}()
然后将这些放置到单独的堆栈视图中:
private lazy var flightData: UIStackView = {
let stack = UIStackView(arrangedSubviews: [flightNumber,aircraftReg,dateTime,origin])
stack.axis = .horizontal
stack.distribution = .equalSpacing
stack.spacing = Constants.standardHorizontalStackSpacing
return stack
}()
标题标签的字体大小为12,而值的字体大小为17。除了一个自定义的字体大小分别为17和2的标签。我正在尝试使所有元素沿同一基准线对齐。我添加了以下约束:
titleLabel.firstBaselineAnchor.constraint(equalTo: valueLabel.firstBaselineAnchor),
但是效果如下:
大多数堆栈元素都对齐,但是您可以看到第一个字体较大的元素位于第二个之上。这让我有些疯狂。我该如何解决它,以便堆栈中的所有元素都沿着同一基线对齐。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)