铸造 – Swift Double不能转换为CGFloat

前端之家收集整理的这篇文章主要介绍了铸造 – Swift Double不能转换为CGFloat前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试绘制一个简单的圆圈,当我得到以下行我得到错误“双不可转换到CGFloat在startAngle = 0.0
path.addArcWithCenter(center,radius: radius,startAngle: 0.0,endAngle: Float(M_PI) * 2.0,clockwise: true)

我如何“铸造”0.0使它成为Swift中的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,startAngle: CGFloat(0.0),clockwise: true)
    path.stroke()    
}
将需要CGFloat的值转换为CGFloat。
path.addArcWithCenter(center,radius: CGFloat(radius),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,endAngle: CGFloat(Float(M_PI) * 2.0),clockwise: true)
        path.stroke()    
    }
原文链接:https://www.f2er.com/swift/320401.html

猜你在找的Swift相关文章