摘要: 图形上下文栈存储着图形的现有的绘画状态,如果有需求,在同一个View中画不同粗细的线,就需要保存两份绘画状态,每份绘画状态保存一种属性- (void)drawRect:(CGRect)rect { // Drawing code // 需求: 先画一个矩形,颜色为红色,线宽为3 ... 阅读全文
posted @ 2015-12-07 19:52 去世的闲人 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 1.画图片- (void)drawRect:(CGRect)rect { // Drawing code UIImage *image = [UIImage imageNamed:@"papa"]; // 在这个点画 [image drawAtPoint:CG... 阅读全文
posted @ 2015-12-07 19:25 去世的闲人 阅读(127) 评论(0) 推荐(0) 编辑
摘要: Paths中的几个重要元素Pointsvoid CGContextMoveToPoint ( CGContextRef c, CGFloat x, CGFloat y);指定一个点成为current pointQuartz会跟踪current point一般执行完一个相关函数后,current po... 阅读全文
posted @ 2015-12-07 19:05 去世的闲人 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 1.画三角形- (void)drawRect:(CGRect)rect { // 获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 确定三个点 CGContextMoveToPoint(ctx, 30... 阅读全文
posted @ 2015-12-07 19:03 去世的闲人 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 原子性---nonatomic特质在默认情况下,由编译器合成的方法会通过锁定机制确保其原子性(atomicity)。如果属性具备 nonatomic 特质,则不使用同步锁。请注意,尽管没有名为“atomic”的特质(如果某属性不具备 nonatomic 特质,那它就是“原子的” ( atomic) ... 阅读全文
posted @ 2015-12-07 11:27 去世的闲人 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1.SEL类型的第一个作用, 配合对象/类来检查对象/类中有没有实现某一个方法 SEL sel = @selector(setAge:); Person *p = [Person new]; // 判断p对象中有没有实现-号开头的setAge:方法 // 如果P对象实现了se... 阅读全文
posted @ 2015-12-07 11:24 去世的闲人 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 一、 构造方法构造方法:在OC中init开头的方法, 我们称之为构造方法构造方法的用途: 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值// 比如我们定义一个Person的类,然后在类里面定义一个age的变量。如果不使用构造方法,有需求创建5个人,每个人年龄初始化为6,这么我们就需要下... 阅读全文
posted @ 2015-12-07 10:31 去世的闲人 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 首先明确 id 和 instancetype 都是万能指针,都能指向一个对象:(instancetype == id == 万能指针 == 指向一个对象)主要区别亮点:1. id 在编译时候不能判断对象的真是类型,但是instancetype 编译的时候可以判断对象真是类型,这样的话,编写代码时候,... 阅读全文
posted @ 2015-12-07 10:14 去世的闲人 阅读(934) 评论(0) 推荐(0) 编辑