为UIButton添加单侧阴影效果

前提很重要!!!必须要为UIButton添加背景颜色。没有背景颜色阴影不会出来的。

另外还有一点,如果用Masonry做适配的话,添加圆角、边线等需要在前面加一句:

[self.moreBtn layoutIfNeeded];

这句话的主要作用就是加载刷新view,这样view才有frame值。

言归正传,给button加单侧阴影主要是用UIBezierPath在需要加阴影的那一侧构建Path。

[self.moreBtn layoutIfNeeded];

self.moreBtn.layer.shadowColor = GrayColor.CGColor;//shadowColor阴影颜色

self.moreBtn.layer.shadowOffset = CGSizeMake(0,0);//shadowOffset阴影偏移,x向右偏移-4,y向下偏移0,

self.moreBtn.layer.shadowOpacity = 0.8;//阴影透明度,默认0

self.moreBtn.layer.shadowRadius = 3;//阴影半径,默认3

//路径阴影

UIBezierPath *path = [UIBezierPath bezierPath];

CGPoint leftMiddle = CGPointMake(0,0);

[path moveToPoint:leftMiddle];

[path addLineToPoint:CGPointMake(-2, 0)];

[path addLineToPoint:CGPointMake(-2, self.moreBtn.height)];

[path addLineToPoint:CGPointMake(0, self.moreBtn.height)];

self.moreBtn.layer.shadowPath = path.CGPath;

最终效果图:


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

推荐阅读更多精彩内容

  • 前言:关于贝塞尔曲线与CAShapeLayer的学习 学习Demo演示: 贝塞尔曲线简单了解 使用UIBezier...
    麦穗0615阅读 17,928评论 18 149
  • Quartz2D以及drawRect的重绘机制字数1487 阅读21 评论1 喜欢1一、什么是Quartz2D Q...
    PurpleWind阅读 810评论 0 3
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,147评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,573评论 6 30
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666阅读 1,443评论 0 6