CALayer的简单使用-UIImageView

UIView之所以能够显示,完全是因为内部的CALayer对象。因此,通过操作这个CALayer对象,可以很方便地调整UIView的一些界面属性,比如:阴影、圆角大小、边框宽度和颜色等。

UIView的使用比较简单,这里主要说说通过CALayer修改UIImageView的界面属性:

对于UIImageView,与UIView不同的是,它有两个图层,layer在主层,显示图片的为次层。

创建一个imageView,

UIImage image = [UIImage imageNamed:@“1.png”];
 
UIImageView imageView = [[UIImageView alloc] initWithImage:image];
 
imageView.center = CGPointMake(100, 100);
 
[self.view addSubview:imageView];

1)设置边框宽度和颜色 

//边框是在图片的里面加上,占据图片的内容,图片内容减少,而UIView是在外面加边框
 imageView.layer.borderWidth = 5; 
 imageView.layer.borderColor = [UIColor redColor].CGColor;

2)设置圆角大小 
通过layer属性可以访问视图内部的CALayer对象

 imageView.layer.cornerRadius = 10; 
//maskToBounds=YES:超过主层边框的部分切掉,少了这个设置,UIImageView是不会有圆角效果的
 imageView.layer.masksToBounds = YES;

  注意,如果设置了maskToBounds=YES,那将不会有阴影效果 

3)设置阴影 

//设置阴影的颜色为灰色,注意,这里使用的是UIColor的CGColor属性,是一种CGColorRef类型的数据
  imageView.layer.shadowColor = [UIColor grayColor].CGColor; 
//设置阴影的偏移大小,可以看出阴影往原图的右下角偏移
  imageView.layer.shadowOffset = CGSizeMake(10, 10); 
//设置阴影的不透明度为0.5,表示半透明。如果为1,代表完全不透明。
  imageView.layer.shadowOpacity = 0.5;

4)设置旋转

//transform是一个结构体,M_PI_4表示四分之π,顺时针旋转45°,后面的(1, 1, 0),绕着连接原点和(1,1)的轴旋转,修改这个向量可以做一些三维旋转效果,你可以随便改个值试一下,比如(0, 0, 1)表示Z轴这个向量
imageView.layer.transform = CATransform3DMakeRotation(M_PI_4, 0, 0, 1);

UIView可以通过addSubview:方法添加子视图,类似地,CALayer可以通过addSublayer:方法添加子层 
还可以通过KVC设置旋转,

NSvalue *value = [NSValue valueWithCATransform3D:CATransform3DMackRotation(M_PI_4, 1, 1, 0)];
[imageView.layer setValue: value forKeyPath:"transform"];

如果仅仅二维旋转,可以这样:

[imageView.layer setValue: @(M_PI_4) forKeyPath:"transform.rotation"];

如果缩放,

[imageView.layer setValue: @(0.5) forKeyPath:"transform.scale.x"];

 

 

 

 

转载于:https://my.oschina.net/u/2535233/blog/611558

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值