你的位置:首页 > 软件开发 > 操作系统 > iOS UI进阶05

iOS UI进阶05

发布时间:2015-08-30 11:00:11
Quartz2DQuartz2D是二维的绘图引擎经包装的函数库,方便开发者使用。也就是说苹果帮我们封装了一套绘图的函数库用Quartz2D写的同一份代码,既可以运行在iphone上又可以运行在mac上,可以跨平台开发。开发中比较常用的是截屏/裁剪/自定义UI控件。 Quartz2 ...

iOS UI进阶05

  • Quartz2D
    • Quartz2D是二维的绘图引擎
      • 经包装的函数库,方便开发者使用。也就是说苹果帮我们封装了一套绘图的函数库
      • 用Quartz2D写的同一份代码,既可以运行在iphone上又可以运行在mac上,可以跨平台开发。
      • 开发中比较常用的是截屏/裁剪/自定义UI控件。 Quartz2D在iOS开发中的价值就是自定义UI控件。
      • 在drawRect:方法中才能获取到上下文
  • Quartz2D绘图
    • 自定义view:需要绘图,就必须重写drawRect:方法
      • 1 drawRect视图要显示的时候,才会调用,viewDidLoad后才会调用,因为那时候还没显示视图。
      • 2 作用:用来绘图
        • 画一条线
        • 1 获取图形上下文
        • CG:表示这个类在CoreGraphics框架里 Ref:引用
        • 想获取图形上下文,首先敲UIGraphics。
        • 2 拼接路径:一般开发中用贝塞尔路径,里面封装了很多东西,可以帮我画一些基本的线段,矩形,圆等等。
        • 创建贝塞尔路径
        • 起点:moveToPoint
        • 终点:addLineToPoint
        • 3 把路径添加到上下文
      • CGPath转换:UIKit框架转CoreGraphics直接CGPath就能转
        • 4> 把上下文渲染到视图,图形上下文本身不具备显示功能。
        • 5总结:首先获取图形上下文,然后描述路径,把路径添加到上下文,渲染到视图,图形上下文相当于一个内存缓存区,在内存里面操作是最快的,比直接在界面操作快多了。
        • // 什么时候调用:当前控件即将显示的时候才会调用这个方法绘制  // 作用:绘制内容,以后只要想在一个view中绘制内容,必须在drawRect里面绘制  - (void)drawRect:(CGRect)rect {  // 绘制曲线  // 1.获取上下文  CGContextRef ctx = UIGraphicsGetCurrentContext();  // 2.拼接路径  UIBezierPath *path = [UIBezierPath bezierPath];  // 设置起点  [path moveToPoint:CGPointMake(10, 125)];  // 描述曲线  [path addQuadCurveToPoint:CGPointMake(240, 125) controlPoint:CGPointMake(125, 240)];  [path addLineToPoint:CGPointMake(10, 125)];  // 3.添加路径到上下文  CGContextAddPath(ctx, path.CGPath);  // 设置绘图状态,一定要再渲染之前  // 设置颜色  [[UIColor redColor] setStroke];  // 设置线段的宽度  CGContextSetLineWidth(ctx, 15);  // 设置线段的顶角样式  CGContextSetLineCap(ctx, kCGLineCapRound);  // 设置连接样式  CGContextSetLineJoin(ctx, kCGLineJoinRound);  // 4.渲染上下文  CGContextStrokePath(ctx);}
          效果图:截屏后iOS UI进阶05
           

          原标题:iOS UI进阶05

          关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。