iOS圆角和阴影并存的两种实现方法_ios 圆角加阴影-程序员宅基地

技术标签: Swift  

圆角和阴影无法共存的原因就是因为这句代码。

Because shadow is an effect done outside the View, and that masksToBounds set to YES will tell the UIView not to draw everything that is outside itself.

这句话的意思就是,圆角都是我给你割出来的,圆角外面的阴影自然也割掉了~ 所以,这么看来,圆角与阴影不能并存啊(仅限这种圆角实现的方式)

那么我们怎么实现呢?

实现方法一:添加一个上层的Layer

    CALayer *subLayer=[CALayer layer];
    CGRect fixframe = _tableView.frame;
    subLayer.frame= fixframe;
    subLayer.cornerRadius=8;
    subLayer.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:0.8].CGColor;
    subLayer.masksToBounds=NO;
    subLayer.shadowColor = [UIColor blackColor].CGColor;//shadowColor阴影颜色
    subLayer.shadowOffset = CGSizeMake(3,2);//shadowOffset阴影偏移,x向右偏移3,y向下偏移2,默认(0, -3),这个跟shadowRadius配合使用
    subLayer.shadowOpacity = 0.8;//阴影透明度,默认0
    subLayer.shadowRadius = 4;//阴影半径,默认3
    [self.bkgView.layer insertSublayer:subLayer below:_tableView.layer];

实现方法二:添加一个Subview

  1. 在subview上面设置圆角,把subview的masksToBounds属性设置为true
  2. 在parent view上面设置阴影,把parent view的masksToBounds属性设置为false,并设置parent view的cornerRadius和subview一样,就可以了。

不知道你看懂了没有呢,如果有问题欢迎留言~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/feosun/article/details/86657330

智能推荐

向90后学习-程序员宅基地

文章浏览阅读369次。作为70后,我自认为还是一直保持着年轻的心态,以前呢,总是跟80后混,一些很牛逼的80后创业者,虽然经常被他们嘲讽为中年人,很落伍,但好歹还是死皮赖脸的跟着人家学点新鲜..._向90后学习

nginx autoindex美化_nginx autoindex 更改样式-程序员宅基地

文章浏览阅读1.2k次。title: nginx autoindex美化date: 2021-06-14 07:16:31tags: nginx autoindex fancyindexnginx autoindex美化Nginx的autoindex默认界面十分简陋,Naereen的fancyindex主题太久没有更新,有点跟不上现在的屏幕,因此基于Naereen’s fancyindex theme(light)修改了一个fancyindex主题Nginx-Fancyindex-Theme-WhiteSmokeNgi._nginx autoindex 更改样式

常用大模型服务REST API的使用方法_百川大模型 api rest-程序员宅基地

文章浏览阅读894次,点赞26次,收藏11次。近几年国内外头部的AI公司相继发布了自己的大模型REST API服务,一些还支持在线体验。如果用python调用各家的REST API,就可以批量测试不同模型的效果本文整理了主要几个大模型提供商的REST API用法,方便集中查阅。_百川大模型 api rest

使用Anime.js的基于JavaScript的动画,第3部分:值,时间轴和播放-程序员宅基地

文章浏览阅读1.2k次。在Anime.js系列的上一教程中,您了解了用于控制应如何对不同目标元素进行动画处理的各种参数。 您还学习了如何使用函数参数逐渐更改元素的延迟或持续时间。 在本教程中,我们将更进一步,学习如何使用常规数字,基于函数的值和关键帧来指定属性值本身。 您还将学习如何使用时间轴顺序播放动画。 指定属性值 Anime.js允许您为目标元素的可设置动画的属性指定最终值或最终值。 动画的初始值或起始..._anime.timeline

【图像融合】一种基于粒子群优化的自适应多光谱图像融合附matlab代码及论文_混合粒子群 融合图像-程序员宅基地

文章浏览阅读119次。1 简介In this paper, a novel image fusion method for remote sensing applications is proposed. In order to estimate the primitive detail map, the band coefficients of multispectral images are computed using least squares method. To refine the detail map a.._混合粒子群 融合图像

Vue图片加载错误、图片加载失败的处理_swipe-vue中 加载图片失败-程序员宅基地

文章浏览阅读1.3k次。Vue图片加载错误、图片加载失败的处理注意:onerror前面要用冒号 :注意看logo定义的格式,符号不要写错了<img :src="pic?pic:'../../assets/placeholder.png'" :onerror="errorImage" alt=""> <script>export default { data() { return { errorImage: 'this.src="' _swipe-vue中 加载图片失败

随便推点

Android9.0 新特性_android 9.0横竖屏切换-程序员宅基地

文章浏览阅读8.7k次,点赞2次,收藏5次。Android 9(API 级别 28)为用户和开发者引入了众多新特性和新功能。 本文重点介绍面向开发者的新功能。利用 Wi-Fi RTT 进行室内定位Android 9 添加了对 IEEE 802.11mc Wi-Fi 协议(也称为 Wi-Fi Round-Trip-Time (RTT))的平台支持,从而让您的应用可以利用室内定位功能。在运行 Android 9 且具有硬件支持的..._android 9.0横竖屏切换

mq总结-程序员宅基地

文章浏览阅读148次。MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。MQ,消息队列,存储消息的中间件 - 分布式系统通信两种方式:直接远程调用 和 借助第三方 完成间接通信 - 发送方称为生产者,接收方称为消费者MQ的优势和劣势 优势 - 应用解耦 -- mq相当于一个中介,生产方通过mq于消费方交互 - 异步提速 == 将不需要同步处理的并且耗时长的操作由消息队列通知消息接受方进行异步处理. - 削峰填谷 == 【削峰】高峰,限制消费消_mq总结

如何加速网站访问-程序员宅基地

文章浏览阅读300次。阿里云的全球加速服务:https://help.aliyun.com/document_detail/56607.html?spm=5176.11065259.1996646101.searchclickresult.2cb0905bWpYesT&aly_as=k4U2N5tS移动解析HttpDNShttps://cloud.tencent.com/product/hd?..._如何加速网站访问

Android--使用XMLPull解析xml-程序员宅基地

文章浏览阅读3.3k次。在Android中极力推荐的xmlpull方式解析xml。xmlpull不仅仅可以使用在Android上,同样也适用于javase,但在javase环境下,你需要自己去获取xmlpull所依赖的类库。 环境: kxml2-2.3.0.jar xmlpull_1_1_3_4c.jar以上两个jar分别从以下网站下载:htt_xmlpull

Unity3D_新版粒子系统_unity3.5之后推出粒子系统新版本的特点-程序员宅基地

文章浏览阅读818次。什么是粒子系统粒子系统表示三维计算机图形学中模拟一些特定的模糊现象的技术,而这些现象用其它传统的渲染技术难以实现的真实感的 game physics。经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。新版粒子系统介绍Shuriken粒子系统是继Unity3.5版本之后推出的新版粒子系统,它采用了模块化管理,个性化的粒子模块配合..._unity3.5之后推出粒子系统新版本的特点

人工智能发展史_人工智能发展史 ppt-程序员宅基地

文章浏览阅读9.1k次,点赞2次,收藏7次。转自 微信公众号 纯洁的微笑人工智能的诞生:1943 - 1956在20世纪40年代和50年代,来自不同领域(数学,心理学,工程学,经济学和政治学)的一批科学家开始探讨制造人工大脑的可能性。1956年,人工智能被确立为一门学科。1956年的夏天,香农和一群年轻的学者在达特茅斯学院召开了一次头脑风暴式研讨会。会议的组织者是马文·闵斯基,约翰·麦卡锡和另两位资深科学家C_人工智能发展史 ppt