iOS中UIView是界面元素基础,应用程序上看得见摸得到的比如 一个button,一个label,一个textFiled,一个图片或者一个复杂的自定义cell都是继承于UIView.它本身是由CoreAnimation来实现的(Mac下似乎不是这样).但是它一般负责交互,而UIView 之所以有颜色等属性,是因为它真正的绘图部分是由另外一个类来实现,CALayer. UIView本身更像是一个CALayer的管理器,访问它的跟绘图有关的属性,例如,frame bounds等等,实际上内部都是在访问它所包含的属性.每一个UIView及其子类都有一个只读的CALayer 实例 layer属性,通过它可以设置很多东西,如:阴影,边框,圆角,透明度等等. CALayer的重要属性:
1. shadowPath : 设置 CALayer 背景(shodow)的位置
2. shadowOffset : shadow 在 X 和 Y 轴 上延伸的方向,即 shadow 的大小
3. shadowOpacity : shadow 的透明效果
4. shadowRadius : shadow 的渐变距离,从外围开始,往里渐变 shadowRadius 距离
5. masksToBounds : 很重要的属性,可以用此属性来防止子元素大小溢出父元素,如若防止溢出,请设为 true
6. borderWidth 和 boarderColor : 边框颜色和宽度,很常用
7. opacity : UIView 的透明效果
8. cornerRadius : UIView 的圆角代码示例:
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
view.backgroundColor = [UIColor yellowColor];
//设置阴影的颜色
view.layer.shadowColor = [UIColor redColor].CGColor;
//设置阴影的透明度 0 ~ 1 默认为0
view.layer.shadowOpacity = 1;
//设置视图阴影的偏移量 默认是CGSizeMake(0, -1)
view.layer.shadowOffset = CGSizeMake(10, 10);
//设置阴影的渐变距离 3
view.layer.shadowRadius = 10;
//边框颜色 和 宽度(默认为0)
view.layer.borderColor = [UIColor blackColor].CGColor;
view.layer.borderWidth = 1;
//圆角
view.layer.cornerRadius = 10;
//是否允许子视图超出父视图 不允许为YES 也可以用来裁掉超出View外的CALayer (例如UILable)
view.layer.masksToBounds = YES;