UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
[self.view addSubview:imageView];
// 给图片设置阴影
// 提示,在imageView中,图层不止一个,如果要实现圆角效果,需要设置一个遮罩属性
// masksToBounds属性可以让imageView中的所有子图层跟随imageView一起变化
imageView.layer.cornerRadius = 50.0f;
[imageView.layer setMasksToBounds:YES];
// 提示,如果设置了masksToBounds属性,imageView的阴影效果无效
[imageView.layer setShadowColor:[UIColor redColor].CGColor];
[imageView.layer setShadowColor:[UIColor redColor].CGColor];
[imageView.layer setShadowOffset:CGSizeMake(10.0, 10.0)];
[imageView.layer setShadowOpacity:1.0];
// 设置CALayer的边框
[imageView.layer setBorderColor:[UIColor blueColor].CGColor];
[imageView.layer setBorderWidth:3.0f];
// 形变属性 在CALayer 中的形变属性是3D的,不再是2D的
// 平移属性,向上移动100个点
// [imageView.layer setTransform:CATransform3DMakeTranslation(0, -100, 0)];
//图像的旋转通常是沿着z轴旋转,图像本身没有厚度如果按照x或者y旋转
90度,图像是不可见的
自定义视图的layer的演练
因为core animation是跨平台的,基于quartzcore框架的,是因为UIKit框架,仅能支持iOS平台
通过CATransaction 关闭每一个CALayer内部的隐式动画
关闭动画
[CATransaction begin];
[CATransaction setDisableActions:YES];
// 要重绘制CALayer,必须要调用setNeedDisplay方法
[myLayer setNeedsDisplay];
不能讲layer的delegate设置为view,通常将控制器设置为CAlayer的代理
会实现drawLayer inContext方法
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx