let angle = 45° // angle will be in radians, 45 is in degrees
Swift 3 altında derlenir . Yine de tüm değerleri koruyun, CGFloats ile tüm hesaplamaları radyan cinsinden yapın ... ancak sabitler derece cinsinden olacak şekilde kodu daha okunaklı hale getirin. Örneğin: 90 °
° işareti dereceleri sihirli bir şekilde radyana dönüştürür.
Bu nasıl kurulur:
° işareti için bir sonek operatörü tanımlayın ve kullanın . Bu operatör, dereceden radyana dönüşümü yapacak. Bu örnek Ints içindir, ihtiyacınız varsa bunları Float türleri için de genişletin.
postfix operator °
protocol IntegerInitializable: ExpressibleByIntegerLiteral {
init (_: Int)
}
extension Int: IntegerInitializable {
postfix public static func °(lhs: Int) -> CGFloat {
return CGFloat(lhs) * .pi / 180
}
}
Bazı kullanım örnekleri:
let angle = 45°
contentView.transform = CGAffineTransform(rotationAngle: 45°)
let angle = 45
contentView.transform = CGAffineTransform(rotationAngle: angle°)
Uyarı!
Bu dönüşümü iki kez kullanmak çok kolaydır (yanlışlıkla radyan cinsinden bir değerde), sonuç olarak çok küçük bir sayı alacaksınız ve görünüşte ortaya çıkan açı her zaman sıfır olacaktır ... Aynı üzerinde ° KULLANMAYIN değeri iki kez (iki kez dönüştürme) !!:
// 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