标签:
1、KVC可以做到很精确,key中属性的获取:Window—>Documentation and API Reference—>搜索CATransform3d下面的CATransform3d key paths
表格中的属性不需要背,只要知道rotation:旋转 scale:缩放 translation:平移就可以了,没事的时候一个个试试
会出现一个表格,表格的左边是KVC中key中transform.后面所跟的属性
//value为数值对象的话,需要包装为NSNumber对象 [self.testIamgeView.layer setValue:@(0.5) forKeyPath:@"transform.scale.y"]; //value为结构体的话,需要包装为NSValue对象 [self.testIamgeView.layer setValue:[NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_4, 1, 1, 0)] forKeyPath:@"transform"];
2、UIView创建的时候,本身就会自动创建一个layer对象,我们也可以自己创建一个图层layer对象
//新建layer CALayer *layer = [CALayer layer]; layer.backgroundColor = [UIColor redColor].CGColor; layer.bounds = CGRectMake(0, 0, 100, 100); //position属性layer有,view是没有的 layer.position = CGPointMake(200, 100); layer.cornerRadius = 10; layer.masksToBounds = YES; //将UI类型转为CG类型,CG是C语音类型,转为id(OC类型)需要进行强换 //固定写法 layer.contents = (id)[UIImage imageNamed:@"111.png"].CGImage; [self.view.layer addSublayer:layer];
3、layer使用CGColor而不是用UIColor的原因,关于CALayer的疑惑
•首先
QuartzCore如果用了UIKit的东西,代表QuartzCore只能用在IOS中,就不可以使用在Mac OS X上了,所以QuartzCore只能用CoreGraphics,这样保证可移植性,iOS和Mac都可以使用。
4、UIView和CALayer的选择
标签:
原文地址:http://www.cnblogs.com/yipingios/p/4498306.html