gpt4 book ai didi

casting - Swift Double 不能转换为 CGFloat

转载 作者:IT王子 更新时间:2023-10-29 05:10:12 26 4
gpt4 key购买 nike

我试图画一个简单的圆当我到达下面一行时我收到错误“Double is Not Convertable to CGFloat under the startAngle = 0.0

path.addArcWithCenter(center, radius: radius, startAngle: 0.0, endAngle: Float(M_PI) * 2.0, clockwise: true)

如何在 Swift 中“转换”0.0 使其成为 CGFloat?

我写的完整函数:

func drawCircle() {
// Drawing code
var bounds:CGRect = secondView.bounds
var center = CGPoint()
center.x = bounds.origin.x + bounds.size.width / 2.0
center.y = bounds.origin.y + bounds.size.height / 2.0
var radius = (min(bounds.size.width, bounds.size.height) / 2.0)
var path:UIBezierPath = UIBezierPath()
path.addArcWithCenter(center, radius: radius, startAngle: CGFloat(0.0), endAngle: Float(M_PI) * 2.0, clockwise: true)
path.stroke()
}

最佳答案

将需要CGFloat的值转换为CGFloat。

path.addArcWithCenter(center, radius: CGFloat(radius), startAngle: CGFloat(0.0), endAngle: CGFloat(M_PI) * 2.0, clockwise: true)

startAngle 可能不需要转换,但如果您只是传递文字。另请注意,这不是 C 风格的转换,而是实际上在不同的 Swift 类型之间进行转换。

编辑:看看你的整个函数,这是可行的。

func drawCircle() {
// Drawing code
var bounds:CGRect = self.view.bounds
var center = CGPoint()
center.x = bounds.origin.x + bounds.size.width / 2.0
center.y = bounds.origin.y + bounds.size.height / 2.0
var radius = (min(bounds.size.width, bounds.size.height) / 2.0)
var path:UIBezierPath = UIBezierPath()
path.addArcWithCenter(center, radius: CGFloat(radius), startAngle: CGFloat(0.0), endAngle: CGFloat(Float(M_PI) * 2.0), clockwise: true)
path.stroke()
}

关于casting - Swift Double 不能转换为 CGFloat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25130215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com