У меня есть простой пример, где я пытаюсь нарисовать круг.Этот код ниже не дает мне круг.
import UIKit
class PlayingCardView: UIView {
override func draw(_ rect: CGRect) {
if let context = UIGraphicsGetCurrentContext(){
context.addArc(center: CGPoint(x: bounds.midX,
y: bounds.midY), radius: 100.0,
startAngle: 0,
endAngle: CGFloat(2.0*Float.pi),
clockwise: true)
context.setLineWidth(5.0)
UIColor.red.setStroke()
context.strokePath()
print(2.0*CGFloat.pi)
print(CGFloat(2.0*Float.pi))
}
}
}
Это - это то, что я получаю с кодом выше:
с выводом:
6.283185307179586
6.283185005187988
из операторов печати, которые соответствуют 2.0*CGFloat.pi
и CGFloat(2.0*Float.pi)
соответственно.
Обновление кода до этого (я изменяю только endAngle в context.addArc
на 2.0*CGFloat.pi
вместо CGFloat(2.0*Float.pi)
import UIKit
class PlayingCardView: UIView {
override func draw(_ rect: CGRect) {
if let context = UIGraphicsGetCurrentContext(){
context.addArc(center: CGPoint(x: bounds.midX,
y: bounds.midY), radius: 100.0,
startAngle: 0,
endAngle: 2.0*CGFloat.pi,
clockwise: true)
context.setLineWidth(5.0)
UIColor.red.setStroke()
context.strokePath()
print(2.0*CGFloat.pi)
print(CGFloat(2.0*Float.pi))
}
}
}
Я получаю рисунок (круг есть)
Очевидно, что разница между CGFloat от Float и CGFloat есть.Кто-нибудь знает, что это такое и почему это поведение полезно в Swift?