iOS view的圆角和阴影并存

参考(cocoachina):iOS-Core-Animation-Advanced-Techniques

简述

由于对view添加圆角需要maskToBounds = YES;而阴影正好是bounds之外渲染的,所以对同一个layer层添加显示圆角就不能显示阴影,参考以上文章,发现简单的方法就是对view添加自定义的layer从而实现圆角和需要圆角显示的图形, 然后再添加一个layer层用来显示阴影

实现代码如下:

//对self.loginBtn添加圆角,背景图片bkgImage, 以及阴影
    CALayer *sublayer =[CALayer layer];
    sublayer.backgroundColor =[UIColor whiteColor].CGColor;
    sublayer.shadowOffset = CGSizeMake(3, 10);
    sublayer.shadowRadius =22;
    sublayer.shadowColor =[UIColor blackColor].CGColor;
    sublayer.shadowOpacity =0.5;
    sublayer.frame = self.loginBtn.bounds;
    sublayer.cornerRadius =22;
    [self.loginBtn.layer addSublayer:sublayer];
    
    CALayer *imageLayer =[CALayer layer];
    imageLayer.frame = sublayer.bounds;
    imageLayer.cornerRadius =self.loginBtn.bounds.size.height / 2;
    imageLayer.contents =(id)backImage.CGImage;
    imageLayer.masksToBounds =YES;
    [sublayer addSublayer:imageLayer];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,551评论 6 30
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 今天真是个开心的日子,因为它是我的生日,而且我收到了最好的生日礼物,就是被王宫解雇了。 我是王宫的厨师。在今天之前...
    大话心情阅读 562评论 6 8
  • 没有看过原著,也没有理工科强大的头脑,缜密的逻辑,但是在看完这部电影之后,还是忍不住惊叹。 原来世间真的有一种爱,...
    洛小娅阅读 622评论 1 0
  • 妈妈学院:家长通常对孩子“唱反调”的行为极为反感,认为孩子就是不听话就是爱抬杠。其实那些善于同父母对某件事进行争辩...
    妈妈学院阅读 1,225评论 0 0