CALayer创建图层
// 创建图层
CALayer *layer = [CALayer layer];
layer.frame = CGRectMake(50, 50, 200, 200);
layer.backgroundColor = [UIColor redColor].CGColor;
// 设置图层内容
layer.contents = (id)[UIImage imageNamed:@"阿狸头像"].CGImage;
[self.view.layer addSublayer:layer];
优点:比UIImageView省内存。
二CALayer遮挡层
//图片在图层的下面 你看到的图是通过第一层图形的形状看到的第二张图
#import "ViewController.h"
@interface ViewController ()
@property(nonatomic,strong) CALayer *imageLayer;
@property(nonatomic,strong) CALayer *maskLayer;
@property(nonatomic,strong) UIImage *imageContents;
@property(nonatomic,strong) UIImage *maskCountents;
@end
self.view.backgroundColor = [UIColor grayColor];
///底图
self.imageContents = [UIImage imageNamed:@"02"];
///显示底图的图
self.maskCountents = [UIImage imageNamed:@"maskLayerContents@2x"];
///图片Layer
self.imageLayer = [CALayer layer];
self.imageLayer.frame = CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height - 64);
///设置
self.imageLayer.contents = (__bridge id _Nullable)((self.imageContents.CGImage));
[self.view.layer addSublayer:self.imageLayer];
///遮罩Layer
self.maskLayer = [CALayer layer];
self.maskLayer.frame = CGRectMake(0, 64, 200, 200);
self.maskLayer.contents = (__bridge id _Nullable)((self.maskCountents.CGImage));
// 根据alpha通道 来选择遮罩的地方 黑色全通过,白色全不通过
self.imageLayer.mask = self.maskLayer;
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(timerClick) userInfo:nil repeats:YES];
- (void)timerClick
{
CGFloat x = arc4random()%(375-200);
CGFloat y = arc4random()%(667-200-64);
///随机取图块
self.maskLayer.frame = CGRectMake(x, y, 200, 200);
}