编辑:在Swift 3.0:
let options: NSStringDrawingOptions = [.usesLineFragmentOrigin, .usesFontLeading]
编辑:This is how you would use the options enum in Swift 2.0:
let options: NSStringDrawingOptions = [.UsesLineFragmentOrigin, .UsesFontLeading]
编辑:The issue 100:
Modified 100 [struct]
- 起始:
enum NSStringDrawingOptions : Int
- 收件人:
struct NSStringDrawingOptions : RawOptionSetType
你现在可以写:
let options : NSStringDrawingOptions = .UsesLineFragmentOrigin | .UsesFontLeading
经过一些研究和@Anton Tcholakov的" comments ":
如果你的目标是OS X 10.10,这是一个简单的方法:
let size = CGSize(width: 280, height: Int.max)
let options : NSStringDrawingOptions = .UsesLineFragmentOrigin | .UsesFontLeading
let boundingRect = string.bridgeToObjectiveC().boundingRectWithSize(size, options: options, attributes: attributes, context: nil)
然而,在iOS 8 SDK(在当前的seed中)中,有一个bug,NSStringDrawingOptions
被移植到Swift作为enum : Int
,而不是struct : RawOptionSet
.你应该向苹果发送一份错误报告,描述这个严重的问题.