#import "YLViewController.h"
// 引入框架的头文件
#import <QuartzCore/QuartzCore.h>
/*
写代码之前先整理下思路:
查看源代码:
在控制器 UIViewController 中定义了个UIView的属性 ---> UIView 中定义了一个属性
@property(nonatomic,readonly,retain) CALayer *layer;
然后跳入 CALayer 中查看:
@interface CALayer : NSObject <NSCoding, CAMediaTiming>
说明 CALayer是一个类而且里面定义了很多的属性和方法,这些方法和属性是动画的基础
那么我们现在就可以:
用UIView的对象myView来操作定义在UIView中的CALayer类的对象layer来操作CALayer类中的属性和方法(代码的理论基础)
*/
@interface YLViewController ()
@end
@implementation YLViewController
- (void)viewDidLoad
{
[superviewDidLoad];
[self.viewsetBackgroundColor:[UIColorlightGrayColor]];
// 一、既然要用UIView的对象去操作 CALayer的属性 那么得首先创建一个UIView对象
UIImage *image = [UIImageimageNamed:@"头像1.png"];
UIImageView *imageView = [[UIImageViewalloc]initWithImage:image];
[imageViewsetFrame:CGRectMake(15,200,180,200)];
[self.viewaddSubview:imageView];
// 1、设置图像的圆角半径为20
/*
下面代码执行后没有反应为什么呢?s下面learnCalayer方法都可以显示圆角这里为什么不行呢?
这是因为在UIImageView中,图层不止一个,如果要引用图层的属性,需要设置一个“遮罩”属性
设置“遮罩”属性的目的是让所有图层跟随父图层一起变化设置如下:
[imageView.layer setMasksToBounds:YES];
*/
[imageView.layersetMasksToBounds:NO];
[imageView.layersetCornerRadius:20];
// 2、设置图像的边框宽度、颜色(注意:要显示图像边框的颜色那就要先设置边框的宽度)
[imageView.layersetBorderWidth:3.0f];
[imageView.layersetBorderColor:[UIColorredColor].CGColor];
// 3、设置不想的阴影但是要把“遮罩”属性关闭 那么在这里就要取舍圆角属性和阴影属性
[imageView.layersetShadowOffset:CGSizeMake(40,40)];
[imageView.layersetShadowOpacity:3.0f];
[imageView.layersetShadowColor:[UIColorblackColor].CGColor];
}
#pragma mark 视图的属性
- (void) learnCalayer
{
UIView *myView = [[UIViewalloc]initWithFrame:CGRectMake(100,30,100,100)];
[myView setBackgroundColor:[UIColorredColor]];
[self.viewaddSubview:myView];
// 1、设置圆角并且指定半角 本来myView显示的是一个正方形但是通过圆角显示了一个圆
[myView.layersetCornerRadius:50];
/*
2、边框setBorderColor:CGColorRef设置颜色的这种参数没见过
那怎么设置参数将UI设置颜色的方法再调用一下cgColor方法即可
*/
[myView.layersetBorderColor:[UIColorwhiteColor].CGColor];//边框白颜色
[myView.layersetBorderWidth:3.0f];//边框的宽度参数直接设定了个3.0f是什么?
// 3、设置阴影(颜色、透明度、偏移量)
// 3.1 设置阴影的颜色 默认透明
[myView.layersetShadowColor:[UIColorblackColor].CGColor];
// 3.2 设置阴影的颜色不透明
[myView.layersetShadowOpacity:1.0f];
// 3.3 设置偏移量
[myView.layersetShadowOffset:CGSizeMake(-10,10)];
}
@end