- (void)test

{

// 不要自己调用drawRect:方法的原因:

// 当系统调用drawRect:方法之前, 会创建一个与当前UIView的layer相关的图形上下文, 这样就可以保证在drawRect:方法中可以正常的获取这个上下文了。

// 但是自己手动调用drawRect:方法的时候无法保证图形上下文已经创建好了,所以千万不要自己去调用drawRect:

[self drawRect:self.frame];

}

// 在自定义的view中进行绘图, 必须在下面的这个方法中编写绘图代码

// 为什么必须在下面这个方法中编写绘图代码?

// 原因: 只有在View的drawRect:方法中才可以正确地获取当前view的layer的图形上下文, 在其他地方是无法正常获取到得

// 所以, 为UIView编写的绘图代码必须必须写到drawRect:方法中.

// drawRect:方法的参数rect, 指的就是当前控件的bounds

// drawRect:方法是系统自动调用的, 无需手动调用

// drawRect:方法是什么时候调用的呢?

// 1> 当这个view第一次显示的时候会调用一次

// 2> 当这个view进行重新绘制的时候会调用drawRectL:。【每次当这个UIView重新绘制的时候都会调用一次这个方法】

// 怎样重新绘制这个UIView呢?当我们手动调换用这个view的 setNeedsDisplay方法或者setNeedsDisplayInRect:方法的时候就执行了"重绘"操作, 一执行重绘操作, 就会立刻调用- (void)drawRect:(CGRect)rect

// 【drawRect:方法绝对不要自己去调用】

转载于:https://www.cnblogs.com/supersr/p/4830881.html

supersr--图形上下文的注意点相关推荐

  1. 图形上下文的栈操作(保存和恢复)

    图形上下文的栈操作 1.在对图形上下文进行操作之前先保存到栈 CGContextSaveState(图形上下文),相当于在内存中开辟一块区域用来存放图形上下文最原始的状态 2.操作图形上下文(栈操作) ...

  2. [Xcode 实际操作]六、媒体与动画-(1)使用图形上下文按一定比例缩放图片

    目录:[Swift]Xcode实际操作 本文将演示如何通过图形上下文,来实现图片缩放的功能. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UI ...

  3. UIGraphicsBeginImageContext - 位图上下文

    UIGraphicsBeginImageContext 首先,先来认识一个UIGraphicsBeginImageContext,它会创建一个基于位图的上下文(context)(默认创建一个透明的位图 ...

  4. Quartz 2D基本图形的绘制

    基本步骤: 1.获取绘图上下文 2.创建并设置路径 3.将路径添加到上下文 4.设置上下文状态 5.绘制路径 6.释放路径 #import "YGView.h" //屏幕尺寸 #d ...

  5. iOS开发UI篇—Quartz2D使用(绘制基本图形)

    一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 决定绘制的输出目标(绘制到什么地方去?)(输出目标可以 ...

  6. 如何用html绘制阴影图形,HTML5 给图形绘制阴影

    在 HTML5 中,我们除了上一节讲过的可以对图形设置平移.旋转.缩放,还可以给图形添加阴影效果.添加阴影的时候只需要利用图形上下文对象的几个关于阴影绘制的属性就可以实现啦. 图形阴影绘制的属性 属性 ...

  7. 用Xlib库进行基本图形编程

    用Xlib库进行基本图形编程 用Xlib库进行基本图形编程 目录 1.前言 2.X Window系统的客户服务器模式 3.GUI编程-同步化的编程模型 4.基本的Xlib概念         1.X ...

  8. Quartz2D简单图形

    这些天一直准备学绘图和核心动画这块,可一直找不到合适系统的教材,没有大纲,比较纠结,在网上搜了又搜,看着其他的博文写的 第一遍来学习绘制简单的图形 // 若想利用Quartz 2D在View上绘制信息 ...

  9. IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)...

    本文转载自:http://blog.csdn.net/rhljiayou/article/details/9919713 首先了解一下CGContextRef: An opaque type that ...

  10. ios绘图基本图形之线条

    1 #import <UIKit/UIKit.h> 2 3 @interface NJLineView : UIView 4 @end 5 6 7 #import "NJLine ...

最新文章

  1. Scala --- 第三章 数组相关操作
  2. 用VC++实现一个文本文件阅读器
  3. Useful websites for library
  4. boost::endian模块实现算术缓冲区的测试程序
  5. Identityserver4中ResourceOwnerPassword 模式获取refreshtoken
  6. 互联网产品设计常用文档类型-BRD、MRD、PRD、FSD
  7. CPU和MMU(内存管理单元)
  8. C语言里 指针变量强制类型转换,C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)...
  9. 八皇后问题 递归求解法
  10. 产品经理:论项目计划有多重要?——软件项目管理
  11. docker-compose搭建ghost博客系统
  12. vue 后端数据成功返回 页面不渲染_vue能获取到数据数据却渲染不到页面上,为什么?...
  13. linux 内存管理_真香!Linux 原来是这么管理内存的
  14. python数字求和为什么得不出结果_WPS表格求和问题,只出公式不出结果数字
  15. Atitit 函数式常用子操作与组合 目录 1. 集合类的操作 1 1.1. Transform、map 1 1.2. paip.提升效率---filter map reduce 的java 函
  16. java三角函数计算器_java 计算器代码能实现三角函数和阶乘功能
  17. java文件上传与下载
  18. python推荐系统-Python黑马头条推荐系统项目
  19. 新闻 - 被遗忘的“活化石”:BBS没落中求生
  20. 2020年8月程序员工资统计,平均14401元,下跌势头止住了

热门文章

  1. Waymo无人驾驶出租车上线:科技感爆棚,还比Uber便宜
  2. 用机器学习拯救“智障”聊天机器人,谷歌开放分析平台Chatbase
  3. React-Native入门(2)-简单阐述跳转
  4. NSMapTable、NSHashTable与NSPointerArray的封装
  5. Xen虚拟化平台安装及实时迁移
  6. Linux SSh scp使用【远程文件/目录的传输】
  7. 用Fragments创建动态UI(翻译)
  8. jfinal启动正常,但是报错:oejw.WebAppContext:Failed startup
  9. 网站测试自动化系统—收集测试结果
  10. Objective-C 编程语言官网文档(二)-对象,类以及消息