在iOS中, 基本上能看见的东西都是UIView, 比如一个普通的view , 一个button, 一个label. UIView之所以能显示在屏幕上, 是因为它有一个layer(图层)属性.
@property(nonatomic,readonly,strong) CALayer *layer;
// returns view's layer. Will always return a non-nil value. view is layer's delegate
一个UIVIew中总会存在至少一个layer, 这个view同时是layer的代理.
当UIView需要显示到屏幕上时,会将所有内容绘制在自己的layer层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView 的显示.总的来说就是layer负责显示内容, view负责内容的管理
CALayer *layer = self.redView.layer;
//设置阴影颜色
layer.shadowColor = [UIColor blueColor].CGColor;
//设置阴影的不透明度
layer.shadowOpacity = 1;
//偏移量
layer.shadowOffset = CGSizeMake(30, 30);
//模糊半径
layer.shadowRadius = 5;
//边框
layer.borderWidth = 5;
layer.borderColor = [UIColor greenColor].CGColor;
//设置圆角
layer.cornerRadius = 30;
//有点时候只设置了圆角, 并不会起作用. 这时候还需要设置maskToBounds属性, 把超过maks层(根层)以外的东西都给裁剪掉
layer.masksToBounds = YES;