iOS -- CALayer

来源:互联网 发布:淘宝正品韩妆店铺推荐 编辑:程序博客网 时间:2024/05/22 03:12
  • 任何一个app都有且仅有一个UIWindow对象
  • 视图(View)调用DrawRect方法绘制自己到layer
  • 所有layer组合成一幅图像,绘制到screen

示例

包含内容

  • 添加一个layer
  • 设置layer的大小
  • 设置边角、阴影、颜色
  • 设置图片作为layer

Code

- (void)viewDidLoad {    [super viewDidLoad];    self.view.frame = [[UIScreen mainScreen] bounds];    self.title = @"Draw";    CALayer *backLayer = [[CALayer alloc] init];    backLayer.backgroundColor = [UIColor whiteColor].CGColor;//设置layer背景色    backLayer.frame = CGRectMake(0, 64, self.view.bounds.size.width, self.view.frame.size.height - 64 - 50);//layer的frame    backLayer.cornerRadius = 50;//边角半径    backLayer.shadowColor = [UIColor redColor].CGColor;//阴影色    backLayer.shadowOffset = CGSizeMake(0, 5);//阴影偏移    [self.view.layer addSublayer:backLayer];    CALayer *layer = [[CALayer alloc] init];    layer.backgroundColor = [UIColor whiteColor].CGColor;    layer.frame = CGRectMake(50, 80, 100, 100);    layer.cornerRadius = 20;    layer.shadowRadius = 25;    layer.shadowOffset = CGSizeMake(5, 5);    layer.shadowOpacity = 0.8;    layer.shadowColor = [UIColor orangeColor].CGColor;    layer.borderWidth = 5;    layer.borderColor = [UIColor blueColor].CGColor;    [self.view.layer addSublayer:layer];    CALayer *imageLayer = [[CALayer alloc] init];    imageLayer.backgroundColor = [UIColor blueColor].CGColor;    imageLayer.frame = CGRectMake(160, 80, 100, 100);    imageLayer.cornerRadius = 20;    imageLayer.shadowRadius = 20;    imageLayer.shadowOffset = CGSizeMake(5, 5);    imageLayer.shadowOpacity = 0.8;    imageLayer.shadowColor = [UIColor blackColor].CGColor;    imageLayer.borderWidth = 5;    imageLayer.borderColor = [UIColor greenColor].CGColor;    imageLayer.masksToBounds = YES;//约束图片边框,yes会导致阴影效果消失    CGImageRef imageRef = [UIImage imageNamed:@"bg5"].CGImage;    imageLayer.contents = (__bridge id)imageRef;    [self.view.layer addSublayer:imageLayer];//添加图片layer }

效果



0 0
原创粉丝点击