swift draw circle view image
swift circle view image
swift draw round view to image
swift CGContextAddEllipseInRect circle image
How do I draw a circle in iOS Swift? – Stack Overflow
How to draw a circle using Core Graphics: CGContextAddEllipseInRect – Swift 2 example code
<code>// let circleRadius:CGFloat = 320/3/1.5 let ButtonNumberPerLine:Int = 3 let ButtonWidthPercent:Float = 2.0/3.0 let circleRadius:CGFloat = (UIScreen.mainScreen().bounds.width/CGFloat(ButtonNumberPerLine)) * CGFloat(ButtonWidthPercent) let darkerBlueColor = UIColor(red: 2.0/255.0, green: 174.0/255.0, blue: 240.0/255.0, alpha: 1) let lightBlueColor:UIColor = UIColor(red: 30.0/255.0, green: 175.0/255.0, blue: 235.0/255.0, alpha: 0.3) let lineColor:UIColor = UIColor(red: 2.0/255.0, green: 174.0/255.0, blue: 240.0/255.0, alpha: 0.7) let borderWidth:CGFloat = 3 let innerCircleRadius:CGFloat = circleRadius/4 self.lockView.normalGestureNodeImage = drawCircleImage(circleRadius, fillColor: UIColor.clearColor(), borderColor: UIColor.whiteColor(), borderWidth: borderWidth) let selectedCircleImage:UIImage = drawCircileImageWithInnderCircle(circleRadius, fillColor: lightBlueColor, borderColor: darkerBlueColor, borderWidth: borderWidth, innerCircleRadius: innerCircleRadius, innerCircleFillColor: darkerBlueColor) self.lockView.selectedGestureNodeImage = selectedCircleImage </code>
调用的代码是:
<code>//draw a circle image with border, if border is 0 means no border func drawCircleImage(circleRadius:CGFloat, fillColor:UIColor = UIColor.blueColor(), borderColor:UIColor = UIColor.cyanColor(), borderWidth:CGFloat = 0) -> UIImage { UIGraphicsBeginImageContextWithOptions(CGSize(width: circleRadius, height: circleRadius), false, 0) let context = UIGraphicsGetCurrentContext() let rectangle = CGRectMake(borderWidth, borderWidth, circleRadius - borderWidth - 1, circleRadius - borderWidth - 1) CGContextSetFillColorWithColor(context, fillColor.CGColor) CGContextSetStrokeColorWithColor(context, borderColor.CGColor) CGContextSetLineWidth(context, borderWidth) CGContextAddEllipseInRect(context, rectangle) if borderWidth == 0 { CGContextDrawPath(context, .Fill) } else { CGContextDrawPath(context, .FillStroke) } let circleImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return circleImage } //draw a outer big circle with border while inside is a inner small circle filled with color func drawCircileImageWithInnderCircle(circleRadius:CGFloat, fillColor:UIColor = UIColor.blueColor(), borderColor:UIColor = UIColor.cyanColor(), borderWidth:CGFloat = 0, innerCircleRadius:CGFloat, innerCircleFillColor:UIColor = UIColor.greenColor()) -> UIImage { UIGraphicsBeginImageContextWithOptions(CGSize(width: circleRadius, height: circleRadius), false, 0) let context = UIGraphicsGetCurrentContext() let rectangle = CGRectMake(borderWidth, borderWidth, circleRadius - borderWidth - 1, circleRadius - borderWidth - 1) CGContextSetFillColorWithColor(context, fillColor.CGColor) CGContextSetStrokeColorWithColor(context, borderColor.CGColor) CGContextSetLineWidth(context, borderWidth) CGContextAddEllipseInRect(context, rectangle) if borderWidth == 0 { CGContextDrawPath(context, .Fill) } else { CGContextDrawPath(context, .FillStroke) } let innerRectangle = CGRectMake(circleRadius/2 - innerCircleRadius/2 + 1, circleRadius/2 - innerCircleRadius/2 + 1, innerCircleRadius, innerCircleRadius) CGContextSetFillColorWithColor(context, innerCircleFillColor.CGColor) CGContextAddEllipseInRect(context, innerRectangle) CGContextDrawPath(context, .Fill) let circleImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return circleImage } </code>
然后去画了效果是:
转载请注明:在路上 » [已解决]swift画一个带填充色的圆形图像