let angle = 45° // angle will be in radians, 45 is in degrees
Compila em Swift 3 . Ainda mantenha todos os valores, faça todos os cálculos em radianos com CGFloats ..., mas torne o código mais legível com as constantes em graus. Por exemplo: 90 °
O sinal ° fará magicamente a conversão de graus em radianos.
Como configurar isso:
Defina e use um operador postfix para o sinal ° . Este operador fará a conversão de graus em radianos. Este exemplo é para Ints, estenda-os também para os tipos Float, se for necessário.
postfix operator °
protocol IntegerInitializable: ExpressibleByIntegerLiteral {
init (_: Int)
}
extension Int: IntegerInitializable {
postfix public static func °(lhs: Int) -> CGFloat {
return CGFloat(lhs) * .pi / 180
}
}
Alguns exemplos de uso:
let angle = 45°
contentView.transform = CGAffineTransform(rotationAngle: 45°)
let angle = 45
contentView.transform = CGAffineTransform(rotationAngle: angle°)
Aviso!
É muito fácil usar esta conversão duas vezes (em um valor já em radianos por engano), você obterá um número muito pequeno como resultado, e aparentemente o ângulo resultante será sempre zero ... NÃO use ° no mesmo valor duas vezes (não converta duas vezes) !!:
// 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