在多行字符串旁边垂直对齐NSTextAttachment

问题描述

我需要创建此图像:

我正在这样创建附件:

let title = "Donuts are Awesomeeee"
let range = title.range(of: "[homer]")!

let font = UIFont.boldSystemFont(ofSize: 14)
let imageSize = CGSize(width: 25,height: 25)

let imageAttachment = NSTextAttachment()
imageAttachment.image = #imageLiteral(resourceName: "homer")
let boundsOrigin = CGPoint(x: 0,y: (font.capHeight - imageSize.height) / 2)
imageAttachment.bounds = CGRect(origin: boundsOrigin,size: imageSize)

然后我添加字符串和附件:

let attributedString = NSMutableAttributedString(string: title,attributes: nil)
attributedString.insert(NSAttributedString(attachment: imageAttachment),at: 0)

该attributedString设置为UILabel

let label = UILabel()
label.font = font
label.textColor = .black
label.attributedText = attributedString
label.numberOfLines = 2
label.backgroundColor = .lightGray

标签添加到子视图并设置宽度为100时,我得到:

enter image description here

最糟糕的是,文本的第二行位于图标的 下。那不应该发生。 知道我该怎么做吗?文本也是动态的,因此也可以是5行。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...