【iOS开发-图层】图层的获取与一些属性

【iOS开发-图层】图层的获取与一些属性

大家好,又见面了,我是全栈君。

图层

每个控件都有自己的一个图层,这个空间的全部东西就是显示在这个图层上面的,控件本身没有显示东西的功能,仅仅有拥有了图层才干显示东西

图层的获取

CALayer *layer = self.testView.layer;

使用UIView的图层为例

UIView本身仅仅有一个图层,主图层

self.testView.layer.borderWidth = 10;//设置边框大小
    self.testView.layer.borderColor = [UIColor blueColor].CGColor;//设置边框颜色
    self.testView.layer.cornerRadius = 10;//设置view的圆角
    self.testView.layer.shadowOffset = CGSizeMake(10, 10);//设置阴影。默认黑色透明。后面是阴影偏差(阴影会向哪个方向偏)右下角全正数
    self.testView.layer.shadowColor = [UIColor blackColor].CGColor;//给阴影设置颜色
    self.testView.layer.shadowOpacity = 0.5;//设置透明度

 self.testView.layer.masksToBounds = YES;//设置超出主层的东西会被剪掉。阴影不显示也是这个原因

UIImageView为例圆角实现

UIImageView控件不止一个图层。图片的显示不是在主层中,所以更改主层的边角为原型。并不能改变图片显示层的边角

 self.imageView.layer.borderWidth = 10;//设置边框宽度大小
 self.imageView.layer.borderColor = [UIColor blueColor].CGColor;//设置边框颜色

//设置图层圆角。由于UIImageView有两个图层,图片显示在复层上面,
//所以仅仅设置这一个属性不会变为圆角
//要把 masksToBounds属性设置为YES
self.imageView.layer.cornerRadius = 10;
self.imageView.layer.masksToBounds = YES;//超出主层的内容都会被减掉

关于layer层的旋转,平移,缩放

layer的仅仅能使用3D旋转,平移,缩放

self.imageView.layer.transform = CATransform3DMakeRotation(M_PI_4, 1, 0.5, 0);//layer层的旋转,使用3D

//控制缩放    使用KVC
NSValue *value = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_4, 0, 0, 1)];
[self.imageView.layer setValue:value forKeyPath:@"transform"];

//等于上面的两句话  使用KVC
[self.imageView.layer setValue:@(M_PI_2) forKeyPath:@"transform.rotation"];

//控件本身的缩放和旋转
self.imageView.transform = CGAffineTransformMakeRotation(M_PI_4);
self.imageView.transform = CGAffineTransformMakeScale(1.5, 1.5);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115359.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月5日 下午2:00
下一篇 2022年2月5日 下午3:00


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号