Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift UILabel居中文本CGRect?_Swift_Uilabel - Fatal编程技术网

Swift UILabel居中文本CGRect?

Swift UILabel居中文本CGRect?,swift,uilabel,Swift,Uilabel,我有一个文本居中的UILabel。单行,未指定属性。我想得到标签中实际文本的CGRect,它跨越了iOS设备的整个宽度。某些文本在文本中是动态的,因此标签中文本的宽度可以随时更改。所以我想得到文本的位置,这样我可以在第一个字符旁边放置一个图像 我以前这样做过,但不记得我做了什么。尝试创建一个临时UILabel以获得文本宽度: 使用textWidth解决您原来的问题。我最终使用了UILabel.textRect。它对我非常有效 let myRect:CGRect = _topBanner.text

我有一个文本居中的UILabel。单行,未指定属性。我想得到标签中实际文本的CGRect,它跨越了iOS设备的整个宽度。某些文本在文本中是动态的,因此标签中文本的宽度可以随时更改。所以我想得到文本的位置,这样我可以在第一个字符旁边放置一个图像

我以前这样做过,但不记得我做了什么。

尝试创建一个临时UILabel以获得文本宽度:


使用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