iOS 7 sizeWithAttributes: replacement for sizeWithFont:constrainedToSize

前端 未结 9 1598
执笔经年
执笔经年 2020-11-28 01:31

How do you return a multiline text CGSize from the new iOS 7 method sizeWithAttributes?

I would like this to produce the same results as sizeWithFont:constrainedToSi

9条回答
  •  失恋的感觉
    2020-11-28 01:58

    Swift 2.3:

    let attributes = [NSFontAttributeName:UIFont(name: "HelveticaNeue", size: 14)]
    let rect = NSString(string: textToMeasure).boundingRectWithSize(
            CGSizeMake(width, CGFLOAT_MAX), 
            options: NSStringDrawingOptions.UsesLineFragmentOrigin, 
            attributes: attributes, context: nil)
    

    Swift 4:

    let attributes = [NSFontAttributeName:UIFont(name: "HelveticaNeue", size: 14)]
    let rect = NSString(string: textToMeasure).boundingRect(
                        with: CGSize(width: width, height: CGFloat.greatestFiniteMagnitude),
                        options: NSStringDrawingOptions.usesLineFragmentOrigin,
                        attributes: attributes as [NSAttributedString.Key : Any], context: nil)
    

提交回复
热议问题