iOS设置UIView阴影遇到的一些坑

img

目的是为了给这块view下半部分加上阴影,实现代码如下。

    topView.layer.masksToBounds = false
    topView.layer.shadowOffset = CGSize.init(width: 0, height: 3)
    topView.layer.shadowOpacity = 0.3
    topView.layer.shadowRadius = 3
    topView.layer.shadowColor = ViewUitl.colorWithHexString(hex: "#6691FB").cgColor
    topView.layer.cornerRadius = 5
    topView.layer.borderWidth = 1
    topView.layer.borderColor = UIColor.white.cgColor

1坑

masksToBounds默认为false,也许项目中加了默认为true的效果。true的情况会导致阴影效果一直不会出来。
clipsToBounds默认也是false,最好也设置一下false,防止不出阴影效果。

2坑

shadowOffsetCGSize实现的,实际功能是偏移量。width是整个阴影x偏移几个像素,height是整个阴影y偏移几个像素。

这个属性要配合shadowRadius使用,比如我半径Radius设置是3,我想实现下半部分显示阴影,我要设置shadowOffset的height为3,这样上部分的阴影向下偏移3个像素,上半部分的阴影就看不到了。(如果height设置为-3的话,就是下半部分隐藏了,向上移动了3个像素)

解释

masksToBoundslayer对子layer进行切割,为true后切割后,阴影就看不到了。
shadowOffsetlayer阴影的偏移量设置。
shadowOpacity阴影的不透明度。
shadowRadius阴影的半径。
shadowColor阴影的颜色,会随着不透明度变。
cornerRadiusview的圆角弧度。
borderWidthview的边线宽度。
borderColorview的边线颜色。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,551评论 6 30
  • 最近项目涉及到对tableView设置阴影效果,实现技术上不难,主要是思路。这里记录下来,也方便大家学习。 阴影是...
    FongG阅读 15,675评论 9 18
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,141评论 5 13
  • 转载:http://www.jianshu.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 6,288评论 0 13
  • 我是一个超级懒的人,没错,我就是传说中没有男朋友,青春被狗吃了的芸芸众生中不仅普通还死宅的吃货少女。因为没有男朋友...
    碧莹小主阅读 42,606评论 723 1,275