let angle = 45° // angle will be in radians, 45 is in degrees
Компіляції під Swift 3 . Все ж зберігайте всі значення, робіть усі обчислення в радіанах із CGFloats ..., але зробіть код більш читабельним із константами в градусах. Наприклад: 90 °
Знак ° магічним чином зробить градуси до перетворення радіанів.
Як це налаштувати:
Визначте та використовуйте оператор постфікса для знака ° . Цей оператор здійснить перетворення градусів на радіани. Цей приклад для Ints, поширюйте їх також на типи Float, якщо у вас є необхідність.
postfix operator °
protocol IntegerInitializable: ExpressibleByIntegerLiteral {
init (_: Int)
}
extension Int: IntegerInitializable {
postfix public static func °(lhs: Int) -> CGFloat {
return CGFloat(lhs) * .pi / 180
}
}
Деякі приклади використання:
let angle = 45°
contentView.transform = CGAffineTransform(rotationAngle: 45°)
let angle = 45
contentView.transform = CGAffineTransform(rotationAngle: angle°)
Увага!
Занадто просто використовувати це перетворення двічі (за значенням, яке вже є в радіанах помилково), ви отримаєте в результаті дуже невелике число, і, здавалося б, отриманий кут завжди буде нульовим ... НЕ використовуйте ° на одному значення двічі (не конвертувати двічі) !!:
// 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