最近学习画图,这个算是笔记了。基本就是绘制圆弧。
-(void)drawRect:(CGRect)rect
{
CGPoint center = self.center;
/*
贝塞尔曲线画圆
参数一:center 圆心
参数二:radius 半径
参数三:startAngle 圆的起点(整圆是0到2*M_PI,圆的起点在最右侧,即0和2*M_PI都是最右侧的点)
参数四:endAngle 圆的终点(起点为0,终点为M_PI,说明是画半圆)
参数五:clockwise 是否顺时钟画圆
*/
//画下半部分的大圆
UIBezierPath *blackBezier = [UIBezierPath bezierPathWithArcCenter:self.center radius:100 startAngle:0 endAngle:M_PI clockwise:YES];
//顺着大圆的终点,画下半部分的半个小圆
[blackBezier addArcWithCenter:CGPointMake(center.x-50, center.y) radius:50 startAngle:M_PI endAngle:0 clockwise:NO];
//顺着小圆的终点,继续画上半部分的半个小圆,刚好与大圆的起点重合
[blackBezier addArcWithCenter:CGPointMake(center.x+50, center.y) radius:50 startAngle:M_PI endAngle:2*M_PI clockwise:YES];
//将画笔移动到小黑圆的起点。(如果不移动画笔,直接画圆,图形将自动添加一条从当前点(画笔停留的点)到小黑圆起点的直线)
//可以尝试注释掉这一句,查看效果
[blackBezier moveToPoint:CGPointMake(center.x-30, center.y)];
//画黑色的小圆
[blackBezier addArcWithCenter:CGPointMake(center.x-50, center.y) radius:20 startAngle:0 endAngle:2*M_PI clockwise:YES];
//设置线条宽度
blackBezier.lineWidth = 3;
//设置颜色
[[UIColor blackColor] set];
//对bezier进行填充
[blackBezier fill];
//对上面设置的路径进行绘制
[blackBezier stroke];
//重新创建一个bezier曲线,blackBezier的样式是填充色和线条颜色都为black
//新建的whiteBezier没有填充色,线条色为黑色,与上面样式不同,所以需要重新创建bezier曲线
UIBezierPath *wihteBezier = [UIBezierPath bezierPathWithArcCenter:center radius:100 startAngle:0 endAngle:2*M_PI clockwise:NO];
wihteBezier.lineWidth = 3;
[wihteBezier stroke];
//创建一个填充色为白色的bezier曲线,进行绘制
UIBezierPath *whiteBezier = [UIBezierPath bezierPathWithArcCenter:CGPointMake(center.x+50, center.y) radius:20 startAngle:0 endAngle:2*M_PI clockwise:YES];
whiteBezier.lineWidth = 3;
[[UIColor whiteColor] set];
[whiteBezier fill];
}