iOS 13:抽屉效果、Quartz2D、图形绘制实例

2016-04-06  本文已影响322人  d2cd99b0efce

抽屉效果

    // 利用KVO时刻监听mainV的frame属性
    // Observer:观察者 谁想监听
    // KeyPath:监听的属性
    // options:监听新值的改变
    [_mainV addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil];

Quartz2D

图片 1.png
// 绘图的步骤: 1.获取上下文 2.创建路径(描述路径) 3.把路径添加到上下文 4.渲染上下文
// 通常在这个方法里面绘制图形
// 为什么要再drawRect里面绘图,只有在这个方法里面才能获取到跟View的layer相关联的图形上下文
// 什么时候调用:当这个View要显示的时候才会调用drawRect绘制图形,
// 注意:rect是当前控件的bounds
- (void)drawRect:(CGRect)rect {
    // 如何绘制曲线
    // 原生绘制方法
    // 获取上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 描述路径
    // 设置起点
    CGContextMoveToPoint(ctx, 50, 50);
    // cpx:控制点的x
    CGContextAddQuadCurveToPoint(ctx, 150, 20, 250, 50);
    // 渲染上下文
    CGContextStrokePath(ctx);
}

项目:基本图形绘制

2313724308561861661.gif

项目:画饼图、柱状图

项目:绘制文字和图片

- (void)drawRect:(CGRect)rect {
    // 超出裁剪区域的内容全部裁剪掉
    // 注意:裁剪必须放在绘制之前
    UIRectClip(CGRectMake(0, 0, 50, 50));
    
    UIImage *image = [UIImage imageNamed:@"001"];
    
    // 默认绘制的内容尺寸跟图片尺寸一样大
//    [image drawAtPoint:CGPointZero];
//    [image drawInRect:rect];
    // 绘图
    [image drawAsPatternInRect:rect];

项目:定时器(雪花)

项目:图形上下文状态栈、图形上下文矩阵操作

    // 把路径添加到上下文
    // .CGPath 可以UIkit的路径转换成CoreGraphics路径
    CGContextAddPath(ctx, path.CGPath);
上一篇 下一篇

猜你喜欢

热点阅读