【发布时间】:2016-07-19 05:06:07
【问题描述】:
我正在开发一个应用程序。我还没有完成 Swift 2.2/3.0 的学徒期,我正在寻找一些答案。
第一: 我正在使用 PaintCode 来生成 Swift 代码的开始。我绘制了具有以下属性的绘图:
代码 Swift:
func drawSpeedView(strokeGap strokeGap: CGFloat = 30, strokeDash: CGFloat = 4, strokePhase: CGFloat = 0, strokeWidth: CGFloat = 31, strokeStartAngle: CGFloat = 225, strokeEndAngle: CGFloat = 315) {
//// General Declarations
let context = UIGraphicsGetCurrentContext()
//// DashedLarge Drawing
let dashedLargeRect = CGRect(x: 14.5, y: 17.5, width: 291, height: 291)
let dashedLargePath = UIBezierPath()
dashedLargePath.addArcWithCenter(CGPoint(x: dashedLargeRect.midX, y: dashedLargeRect.midY), radius: dashedLargeRect.width / 2, startAngle: -strokeStartAngle * CGFloat(M_PI)/180, endAngle: -strokeEndAngle * CGFloat(M_PI)/180, clockwise: true)
UIColor.blackColor().setStroke()
dashedLargePath.lineWidth = strokeWidth
CGContextSaveGState(context)
CGContextSetLineDash(context, strokePhase, [strokeDash, strokeGap], 2)
dashedLargePath.stroke()
CGContextRestoreGState(context)
}
我的问题:
此代码针对 iPhone 5 进行了优化。
对于虚线数字的比例,我需要为 iPhone 6/6s 和 6+/6s+ 创建strokeDash 的值
我需要什么: 我还没有知识库来进行圆周计算。
我需要计算替换行:
CGContextSetLineDash(context, strokePhase, [strokeDash, strokeGap], 2)
用一个十进制数替换,无论圆的周长如何,都能在圆周围加上 12/6/15 虚线。
有人能解决我的问题吗?
我从哪里开始?
【问题讨论】:
标签: swift swift2 core-graphics uibezierpath swift3