在UILabel的左上角,我想对齐一个Icon。这工作文件,但如果Label有多行,则UIImage在UILabel的中间对齐。接口构建器上有选项,例如第一个基线,但我需要的是第一行中心Y.是否有类似的东西?
答案 0 :(得分:0)
实际上,有一种方法可以做到!如果您使用AutoLayout,则可以使用以下代码段完成此操作:
// Aligns the icon to the center of a capital letter in the first line
let offset = label.font.capHeight / 2.0
// Aligns the icon to the center of the whole line, which is different
// than above. Especially with big fonts this makes a visible difference.
let offset = (label.font.ascender + label.font.descender) / 2.0
let constraints: [NSLayoutConstraint] = [
imageView.centerYAnchor.constraint(equalTo: label.firstBaselineAnchor, constant: -offset),
imageView.trailingAnchor.constraint(equalTo: label.leadingAnchor, constant: -10)
]
NSLayoutConstraint.activate(constraints)
第一个约束将在标签第一行的Y中心显示您的图标。第二个图标将您的图标放在标签的左侧,并在它们之间创建一个10pt的空格。
答案 1 :(得分:-3)