将图标对齐到多行UILabel的左上角

时间:2017-08-18 11:14:09

标签: ios swift uilabel

在UILabel的左上角,我想对齐一个Icon。这工作文件,但如果Label有多行,则UIImage在UILabel的中间对齐。接口构建器上有选项,例如第一个基线,但我需要的是第一行中心Y.是否有类似的东西?

2 个答案:

答案 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)

enter image description here

只需按照上图所示放置约束。

提示:我将label的lines属性值设为5,最多支持5行,没有任何妥协。