我有一个带居中文字的UILabel。单行,未归因。我想获得标签中实际文本的CGRect(它跨越iOS设备的整个宽度)。一些文本在文本中是动态的,因此标签中文本的宽度可能会不时变化。所以我想获得文本的位置,以便我可以在第一个角色旁边放置一个图像。
我过去做过这个,但不记得我做了什么。
答案 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