关于drawRect绘图重叠的问题

当我们在drawRect中绘图时,如果没有对当前view设置过背景色,或者未设置opaque属性值,会发现绘制的图形会重叠,这是因为drawRect默认不清除先前的内容。 drawRect清除操作取决于是否有填充操作; drawRect清除内容机制如下: context清理 UIView有个属性opaque, 默认为 YES。UIView 还有个属性clearsContextBeforeDrawing, 默认为 YES,官方文档解释如下: @property(nonatomic,getter=isOpaque)...

多线程-NSOperation,NSOperationQueue

NSOperation,NSOperationQueue demo。最快熟悉的方式就是自己码一遍。 NSOperation NSOperation是一个抽象类,我们可以直接使用其子类NSInvocationOperation和NSBlockOperation,或者封装NSOperation子类来添加要在线程中执行的操作。默认情况下NSOperation单独使用时执行同步操作。 NSInvocationOperation 操作在当前线程中执行,不开启新线程。 NSInvocationOperation *op1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(p_task1) object:nil]; [op1...

多线程-GCD

多线程介绍 demo。最快熟悉的方式就是自己码一遍。 Serial vs. Concurrent 串行 vs. 并发 - 允许同时执行的任务数量 串行: 每次只有一个任务被执行。 并发: 同一时间内可以有多个任务被执行。 Concurrency vs Parallelism 并发与并行 多核设备通过并行来同时执行多个线程。为了使单核设备也能实现这一点,它们必须先运行一个线程,执行一个上下文切换,然后运行另一个线程或进程,这通常发生的足够快以致给我们并行执行的错觉。并行要求并发,但并发并不能保证并行。 Synchronous vs....

RAC-基础笔记

RAC最主要的优势在于提供了一种统一的方式来处理异步行为,包括delegate、回调block、target-action机制、通知和KVO。 RACStream RAC的核心,一个抽象类,RAC中的信号都继承自这个类。其本身不是非常有用,大部分由signals和sequences代替。 其中定义了一系列流操作的方法,实现在子类中重写。 Stream表示一系列对象的值,值可在现在或将来可用,但都是依次检索的。 RACSignal 继承自RACStream,一种_push-driven_的流。通常用来表示将在未来传递的数据。 冷信号,当订阅的时候才发送消息。当多次订阅,信号体内代码将会多次执行。 任何的信号转换即是对原有的信号进行订阅从而产生新的信号 创建信号 // 创建信号

《Xcode Server and Continuous Integration Guide》官方文档中文翻译(三、四、五、六、七)

说明 自己托管到了github,同时制作了gitbook。 目录 开始 关于Xcode中的持续集成 设置Xcode Server 安装OS X Server并配置Xcode Server 启用对源代码仓库的访问 配置bot以执行持续集成 Xcode Server环境变量参考...