Xcode 9中的Swift 4 - 如何在NSAttributedstring中使用boundingrect?

时间:2018-03-06 01:39:19

标签: ios swift swift4 nsattributedstring

我想获取UILabel中某些文本的长度,并动态更改UILabel的width属性。

但我不知道如何在函数boundingrect中设置参数。 这是Apple Developer的文档。

func boundingRect(with size: CGSize, 
      options: NSStringDrawingOptions = [], 
      context: NSStringDrawingContext?) -> CGRect

,我试过这个

let attr = NSMutableAttributedString(string: "test test test test , this is test text. test test test test , this is test text. test test test test , this is test text. ")
//attr.addattributes
print(attr.boundingrect(with: CGSize(width: CGFloat.greatestFiniteMagnitude, height: 0), option: .truncatesLastVisibleLine
,context: nil)!)

但最后我在印刷中得到了假宽度,所以为什么以及如何得到正确的宽度。

1 个答案:

答案 0 :(得分:2)

使用

MachineName  ServiceName             Status StartType
-----------  -----------             ------ ---------
SrvGtw01     Test.MyService....       Running  

然后得到宽度= attr.width(高度:高度) 其中高度> 0