Cómo implementar múltiples selecciones de enumeraciones
NSString* string = @"un fragmento de texto";
CGRect BoundingRect = [string BoundingRectWithSize: CGSizeMake(label. frame .width, CGFloat.max) opciones: NSStringDrawingUsesLineFragmentOrigin | Atributos NSStringDrawingUsesFontLeading: contexto de atributos: nil];
Tipos de opciones en Swift
La enumeración de Swift no admite selecciones múltiples, por lo que se permiten selecciones múltiples. posible El tipo de opción debe implementarse usando la estructura: RawOptionSet. Para implementar la opción escriba usted mismo, puede consultar la respuesta en Stack Overflow, que es cómo se porta el SDK oficial.
opciones de permiso: NSStringDrawingOptions = .UsesLineFragmentOrigin | .UsesFontLeading
letboundingRect = string.bridgeToObjectiveC().boundingRectWithSize(CGSizeMake(label.frame.width, CGFloat.max), opciones: opciones, atributos: atributos, contexto: nil)
Error del SDK de iOS
Los desarrolladores pueden escribir este código directamente en OS X 10.10, pero en la versión actual del SDK de iOS 8. Pero no se puede compilar. Esto se debe a que en el SDK de iOS 8, NSStringDrawingOptions se transfirió como enum: Int en lugar de struct: RawOptionSet. ¿Cómo solucionar este problema? Sólo puedes resolver este problema tomando prestado Objective-C.