precio - suzuki swift sport
Swift-Dibujo de texto con drawInRect: withAttributes: (4)
El problema es que la font
es opcional porque los constructores de conveniencia ahora devuelven valores opcionales, por lo que la font
debe ser desenvuelta para que sea un valor en su diccionario:
if let actualFont = font {
let textFontAttributes = [
NSFontAttributeName: actualFont,
NSForegroundColorAttributeName: textColor,
NSParagraphStyleAttributeName: textStyle
]
text.drawInRect(NSOffsetRect(textRect, 0, 1), withAttributes: textFontAttributes)
}
Tengo un problema extraño con Xcode 6.1 GM.
let text: NSString = "A"
let font = NSFont(name: "Helvetica Bold", size: 14.0)
let textRect: NSRect = NSMakeRect(5, 3, 125, 18)
let textStyle = NSMutableParagraphStyle.defaultParagraphStyle().mutableCopy() as NSMutableParagraphStyle
textStyle.alignment = NSTextAlignment.LeftTextAlignment
let textColor = NSColor(calibratedRed: 0.147, green: 0.222, blue: 0.162, alpha: 1.0)
let textFontAttributes = [
NSFontAttributeName: font,
NSForegroundColorAttributeName: textColor,
NSParagraphStyleAttributeName: textStyle
]
text.drawInRect(NSOffsetRect(textRect, 0, 1), withAttributes: textFontAttributes)
El error está en línea, deje que texFontAttributes ...
Cannot convert the expression''s type ''Dictionary'' to type ''DictionaryLiteralConvertible''
Este código funciona perfectamente hasta Xcode 6.1 GM.
Cuando trato de declarar textFontAttributes como mensaje de error NSDictionary se cambia a:
Cannot convert the expression''s type ''NSDictionary'' to type ''NSString!''
No tengo ni idea de cómo resolver este problema :(
En Swift 4
let attributeDict: [NSAttributedString.Key : Any] = [
.font: font!,
.foregroundColor: textColor,
.paragraphStyle: textStyle,
]
text.draw(in: rect, withAttributes: attributeDict)
Esta es también otra opción.
let textFontAttributes = [
NSFontAttributeName : font!,
NSForegroundColorAttributeName: textColor,
NSParagraphStyleAttributeName: textStyle
]
Tengo esta pieza de código en mi aplicación que funciona sin problemas:
var textAttributes: [String: AnyObject] = [
NSForegroundColorAttributeName : UIColor(white: 1.0, alpha: 1.0).CGColor,
NSFontAttributeName : UIFont.systemFontOfSize(17)
]