let angle = 45° // angle will be in radians, 45 is in degrees
Dikompilasi dengan Swift 3 . Tetap pertahankan semua nilai, lakukan semua penghitungan dalam radian dengan CGFloat ..., tetapi buat kode lebih mudah dibaca dengan konstanta dalam derajat. Misalnya: 90 °
Tanda ° secara ajaib akan melakukan konversi derajat menjadi radian.
Bagaimana mengatur ini:
Tentukan dan gunakan operator postfix untuk tanda ° . Operator ini akan melakukan konversi dari derajat ke radian. Contoh ini untuk Ints, perluas ini juga untuk tipe Float jika Anda membutuhkannya.
postfix operator °
protocol IntegerInitializable: ExpressibleByIntegerLiteral {
init (_: Int)
}
extension Int: IntegerInitializable {
postfix public static func °(lhs: Int) -> CGFloat {
return CGFloat(lhs) * .pi / 180
}
}
Beberapa contoh penggunaan:
let angle = 45°
contentView.transform = CGAffineTransform(rotationAngle: 45°)
let angle = 45
contentView.transform = CGAffineTransform(rotationAngle: angle°)
Peringatan!
Terlalu mudah untuk menggunakan konversi ini dua kali (pada nilai yang sudah dalam radian karena kesalahan), Anda akan mendapatkan angka yang sangat kecil sebagai hasilnya, dan tampaknya sudut yang dihasilkan akan selalu nol ... JANGAN gunakan ° pada hal yang sama nilai dua kali (jangan dikonversi dua kali) !!:
// 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