CALayer创建图层和遮挡层应用

来源:互联网 发布:js object比较 编辑:程序博客网 时间:2024/05/30 05:25

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);}



0 0
原创粉丝点击