CALayer设置阴影以及裁剪图片

在子视图上面显示图片,让父视图作为子视图的阴影,但是当设置圆角之后,图片的四周需要裁剪,当裁剪之后就会连同阴影一起裁剪掉了,这里实现的方法是当裁剪的时候任然保留原先的父视图,也就是保留阴影效果,具体思路是这样的,请参考以下代码可以帮助好好理解。

//设置阴影和圆角

 //1 父图层(负责显示阴影)

    CALayer *shadowLayer = [[CALayer alloc]init];

    shadowLayer.frame = CGRectMake(10, 300, 300, 200);

    shadowLayer.shadowColor = [UIColor purpleColor].CGColor;

    shadowLayer.shadowOffset = CGSizeMake(20, 100);

    shadowLayer.shadowOpacity = 1;

    

    [self.view.layer addSublayer:shadowLayer];

    

    //2 子图层 (显示图片)

    CALayer *imageLayer = [[CALayer alloc]init];

    imageLayer.frame = CGRectMake(0, 0, 300, 200);

    //内容

    imageLayer.contents = (__bridge id)[UIImage imageNamed:@"1.jpeg"].CGImage;

    //边框

    imageLayer.borderWidth = 5;

    imageLayer.borderColor = [UIColor greenColor].CGColor;

    

    //圆角

    imageLayer.cornerRadius = 50;

    

    //裁剪

    imageLayer.masksToBounds = YES;

    

    [shadowLayer addSublayer:imageLayer];

}

 

posted @ 2016-08-15 19:55  Xcode点点  阅读(405)  评论(0编辑  收藏  举报