UILabel以文本CGRect为中心?

时间:2017-03-30 13:47:57

标签: swift uilabel

我有一个带居中文字的UILabel。单行,未归因。我想获得标签中实际文本的CGRect(它跨越iOS设备的整个宽度)。一些文本在文本中是动态的,因此标签中文本的宽度可能会不时变化。所以我想获得文本的位置,以便我可以在第一个角色旁边放置一个图像。

我过去做过这个,但不记得我做了什么。

2 个答案:

答案 0 :(得分:0)

尝试创建临时UILabel只是为了获取文字 width

let fullWidthLabel: UILabel = ...
let tmpLabel = UILabel()
tmpLabel.text = fullWidthLabel.text
tmpLabel.font = fullWidthLabel.font
tmpLabel.sizeToFit()
let textWidth = tmpLabel.frame.width

使用textWidth解决原始问题。

答案 1 :(得分:0)

我最终使用了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