'sizeWithFont(_:constrainedToSize:lineBreakMode :)'不可用:使用-boundingRectWithSize:options:attributes:context:

B.S*_*mar 0 uifont ios swift

我必须根据文本的大小来扩展TextView的大小,但是它已经显示了问题,但是我无法修复,因此请帮助我解决此问题。

var size: CGSize = text.sizeWithFont(UIFont.boldSystemFontOfSize(13), constrainedToSize: textSize, lineBreakMode:NSLineBreakMode.ByWordWrapping)
Run Code Online (Sandbox Code Playgroud)

Kev*_*vin 5

我将这个ObjC问题的答案翻译成了Swift;什么可能绊倒您的是,你需要投StringNSString

斯威夫特4

let text = "Hello"
let font = UIFont.systemFont(ofSize: UIFont.systemFontSize)
let maxSize = CGSize(width: 100, height: CGFloat.greatestFiniteMagnitude)

let size = (text as NSString).boundingRect(with: maxSize,
        options: [.usesLineFragmentOrigin, .usesFontLeading],
        attributes: [NSFontAttributeName:font],
        context: nil)
    .size
Run Code Online (Sandbox Code Playgroud)

迅捷3

let text = "Hello"
let font = UIFont.systemFontOfSize(UIFont.systemFontSize())
let maxSize = CGSize(width: 100, height: CGFloat.max)

let size = (text as NSString).boundingRectWithSize(maxSize,
        options: [.UsesLineFragmentOrigin, .UsesFontLeading],
        attributes: [NSFontAttributeName:font],
        context: nil)
    .size
Run Code Online (Sandbox Code Playgroud)