您的位置:首页 > 其它

图层的基本使用 自定义图层 图层属性

2015-09-01 17:47 363 查看
UIView本身不具有显示图片的特性,显示是因为它的图层layer

@property (weak, nonatomic) IBOutlet UIView *redView;

// 设置阴影透明度

_redView.layer.shadowOpacity = 1;

// 设置阴影颜色

_redView.layer.shadowColor = [UIColor yellowColor].CGColor;

// 设置阴影圆角半径

_redView.layer.shadowRadius = 10;

// 设置圆角半径

_redView.layer.cornerRadius = 50;

// 设置边框半径

_redView.layer.borderColor = [UIColor whiteColor].CGColor;

// 设置边框半径

_redView.layer.borderWidth = 2;

2.@property (weak, nonatomic) IBOutlet UIImageView *imageView;

// 圆形裁剪

_imageView.layer.cornerRadius = 50;

// 超出layer边框的全部裁剪掉

_imageView.layer.masksToBounds = YES;

_imageView.layer.borderColor = [UIColor whiteColor].CGColor;

_imageView.layer.borderWidth = 2;

3- (void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event

{

[UIView animateWithDuration:1 animations:^{

// 缩放

_imageView.layer.transform = CATransform3DMakeRotation(M_PI, 1, 1, 0);

// 平移

_imageView.layer.transform = CATransform3DMakeTranslation(200, 200, 0);

// 缩放

_imageView.layer.transform = CATransform3DMakeScale(1, 0.5, 1);

// 利用KVC改变形变

NSValue *rotation = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI, 1, 1, 0)];

// [_imageView.layer setValue:rotation forKeyPath:@”transform”];

// [_imageView.layer setValue:@M_PI forKeyPath:@”transform.rotation”];

// [_imageView.layer setValue:@0.5 forKeyPath:@”transform.scale”];

// 平移x轴

[_imageView.layer setValue:@200 forKeyPath:@”transform.translation.x”];

}];

}

二,自定义图层

1. 创建一个图层

CALayer *layer = [CALayer layer];

2. 设置尺寸

layer.bounds = CGRectMake(0, 0, 100, 100);

3. 设置位置

layer.position = CGPointMake(100, 100);

4. 设置颜色

layer.backgroundColor = [UIColor redColor].CGColor;

5. 设置内容

layer.contents = (__bridge id)[UIImage imageNamed:@”阿狸头像”].CGImage;

[self.view.layer addSublayer:layer];

通过CALayer,就能做出跟UIView一样的界面效果。

但是对比CALayer,UIView多了一个事件处理的功能,也就是说CALayer不能处理用户的触摸事件,而UIView是可以的。

所以所处理的事件如果不需要处理用户事件,二者选谁都无所谓

三.CALayer的两个重要属性:position和anchorPoint

CGPoint position用来设置CALayer在父层中的位置 以父层的左上角为原点(0,0)

CGPoint anchorPoint称为“定位点”,“錨点”决定着CALayer身上的哪个点会在position属性所在的位置 以自己左上角为原点(0,0)它的x和y的取值范围都为0~1,默认值为(0.5, 0.5),意味着锚点在layer的中间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: