技术iOS专题iOS 开发

iOS 画圆-刷帧

2015-05-17  本文已影响832人  cb6a1e2768d1

一、画圆

1.在StoryBoard拖一个View

图1.1加上画圆的背景(灰色)View

2.command+N创建新文件,继承UIView

图1.2新文件DrawCircle

3.StoryBoard选择灰色View,关联文件

图1.3关联文件class

4.在PLDrawCircle.m内代码如下:

//1.获取上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

//2.绘图

CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, 200, 200));

//设置颜色

[[UIColor purpleColor] set];

//3.渲染

CGContextFillPath(ctx);

一个圆形就画出来了。

注:画圆还有另外两种方法

第一种:(不说了)

CG_EXTERN void CGContextAddArcToPoint(CGContextRef c, CGFloat x1, CGFloat y1,

CGFloat x2, CGFloat y2, CGFloat radius)

CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);

第二种:

CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)

CGContextRef:获取上下文,x,y:圆心坐标,radius:半径,startAngle:开始的弧度,endAngle:结束的弧度,clockwise: 0为顺时针,1为逆时针。

例如:

CGContextAddArc(ctx, 100, 100, 100, 0, 360 * (M_PI/180), 0);

或者

CGContextAddArc(ctx, 100, 100, 100, 0, 2 * M_PI, 0);

最终效果

图1.4最终效果

二、刷帧

效果:从上往下掉(即改变圆的Y值)

图2.1最终效果

1.定义要修改的属性Y

@property (nonatomic , assign) int circleY;

2.修改Y的值

self.circleY += 5;

3.修改原代码中的Y值

CGContextAddArc(ctx, 100, self.circleY, 30, 0, 360 * (M_PI/180), 0);

4.刷新界面

- (void)updateCirCleY

{

[self setNeedsDisplay];

}

5.创建CADisplayLink

CADisplayLink * display = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateCirCleY)];

[display addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];

上一篇下一篇

猜你喜欢

热点阅读