代码实现弥散阴影按钮

最近流行一种设计叫弥散阴影,在用久了扁平之后找不到设计快感,又都开始尝试微阴影的效果;所以必须要有个靓骚的通透的阴影来表现一些质感,下面我用最简单的方式来玩玩弥散阴影。


btn.png
QQ20160704-3.png

这就是最简单的方式了,我这个设计小白也只会这个(囧); 当然更靓骚的方式还可以调整色阶、亮度、曲线,加上模糊等效果。
但这不是重点,重点是怎么用代码实现这个效果呢?模拟器中有一个是图片,猜哪个是代码实现的:

QQ20160704-5.png

上面一个是代码,下面是图片。
实现代码:

#define kShadowRadius 20

@implementation MyShadowButton

- (instancetype)initWithCoder:(NSCoder *)coder {
    self = [super initWithCoder:coder];
    if (self) {
        [self initCommon];
    }
    return self;
}

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        [self initCommon];
    }
    return self;
}

- (void)initCommon {
    UIColor *clr = [UIColor colorWithRed:81.0/255.0 green:224.0/255.0 blue:172.0/255.0 alpha:1.0];
    self.backgroundColor = clr;
    self.layer.shadowColor = clr.CGColor;
    self.layer.cornerRadius = 5;
    self.layer.shadowOffset = CGSizeMake(0,0);
    self.layer.shadowOpacity = 1.0;
    self.layer.shadowRadius = kShadowRadius;
}

- (void)layoutSubviews {
    [super layoutSubviews];
    self.layer.shadowPath = [UIBezierPath bezierPathWithRect:CGRectMake(kShadowRadius, self.bounds.size.height/2, self.bounds.size.width-(2*kShadowRadius), self.bounds.size.height/2)].CGPath;
}

@end

如果阴影位置不一样只要调一下shadowPath 就好了。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,180评论 25 709
  • //我所经历的大数据平台发展史(三):互联网时代 • 上篇http://www.infoq.com/cn/arti...
    葡萄喃喃呓语阅读 51,437评论 10 200
  • 专OR不专?这是一个问题。 小时候的你爱玩各种各样的玩具,和爸妈逛街嚷嚷着要这个要那个,一大堆买回家之后发现,你玩...
    晌风阅读 1,651评论 0 1
  • 小丑笑点(乐言静) 夸诞 怪谈 恶魔狂欢 昏暗 摧残 血月惨淡 傲慢 野蛮 魔鬼凶残 卑贱 尊严 生命界限 不安 ...
    洛千萝阅读 2,817评论 0 0
  • 可能会有许多的鸡汤供给我喝,我二十几岁的年纪,有这么多的毛病。不愿意动动脑,不喜欢别人对自己的否定,放肆的在恋人面...
    一座城儿阅读 3,030评论 0 1