Swift UILabel居中文本CGRect?
我有一个文本居中的UILabel。单行,未指定属性。我想得到标签中实际文本的CGRect,它跨越了iOS设备的整个宽度。某些文本在文本中是动态的,因此标签中文本的宽度可以随时更改。所以我想得到文本的位置,这样我可以在第一个字符旁边放置一个图像 我以前这样做过,但不记得我做了什么。尝试创建一个临时UILabel以获得文本宽度:Swift UILabel居中文本CGRect?,swift,uilabel,Swift,Uilabel,我有一个文本居中的UILabel。单行,未指定属性。我想得到标签中实际文本的CGRect,它跨越了iOS设备的整个宽度。某些文本在文本中是动态的,因此标签中文本的宽度可以随时更改。所以我想得到文本的位置,这样我可以在第一个字符旁边放置一个图像 我以前这样做过,但不记得我做了什么。尝试创建一个临时UILabel以获得文本宽度: 使用textWidth解决您原来的问题。我最终使用了UILabel.textRect。它对我非常有效 let myRect:CGRect = _topBanner.text
使用textWidth解决您原来的问题。我最终使用了UILabel.textRect。它对我非常有效
let myRect:CGRect = _topBanner.textRect(forBounds: _topBanner.bounds, limitedToNumberOfLines: 1)
_icon.frame.origin.x = myRect.origin.x - _icon.frame.size.width + 50
_icon.frame.origin.y = _topBanner.frame.origin.y + 8
为什么不使用NSAttributedString渲染图像,使用NSParagraphStyle添加等于图像宽度的头缩进?
let myRect:CGRect = _topBanner.textRect(forBounds: _topBanner.bounds, limitedToNumberOfLines: 1)
_icon.frame.origin.x = myRect.origin.x - _icon.frame.size.width + 50
_icon.frame.origin.y = _topBanner.frame.origin.y + 8