let angle = 45° // angle will be in radians, 45 is in degrees
Compila bajo Swift 3 . Conserve todos los valores, haga todos los cálculos en radianes con CGFloats ..., pero haga que el código sea más legible con las constantes en grados. Por ejemplo: 90 °
El signo ° hará mágicamente la conversión de grados a radianes.
Cómo configurar esto:
Defina y use un operador de sufijo para el signo ° . Este operador hará la conversión de grados a radianes. Este ejemplo es para Ints, extiéndalos también para los tipos Float si es necesario.
postfix operator °
protocol IntegerInitializable: ExpressibleByIntegerLiteral {
init (_: Int)
}
extension Int: IntegerInitializable {
postfix public static func °(lhs: Int) -> CGFloat {
return CGFloat(lhs) * .pi / 180
}
}
Algunos ejemplos de uso:
let angle = 45°
contentView.transform = CGAffineTransform(rotationAngle: 45°)
let angle = 45
contentView.transform = CGAffineTransform(rotationAngle: angle°)
¡Advertencia!
Es demasiado fácil usar esta conversión dos veces (en un valor que ya está en radianes por error), obtendrá un número muy pequeño como resultado, y aparentemente el ángulo resultante será siempre cero ... NO use ° en el mismo valor dos veces (no convertir dos veces) !!:
// OBVIOUSLY WRONG!
let angle = 45°° // ° used twice here
// WRONG! BUT EASY TO MISS
let angle = 45° // ° used here
contentView.transform = CGAffineTransform(rotationAngle: angle°) // ° also used here