带边框和阴影的圆形按钮

Posted

技术标签:

【中文标题】带边框和阴影的圆形按钮【英文标题】:Round button with border and shadow 【发布时间】:2019-06-04 08:45:02 【问题描述】:

创建一个按钮(如图片中的那个)的最佳方法是什么? 我试过了:

            self.button.layer.shadowColor = UIColor.redColor.CGColor;
            self.button.layer.shadowRadius = 30.0f;
            self.button.layer.shadowOpacity = 1.0f;
            self.button.layer.shadowOffset = CGSizeMake(0.0f, 30.0f);
            self.button.clipsToBounds = NO;

            [self.button setNeedsDisplay];

但这只是添加了一个很小的非常模糊的阴影,一点也不像图像中的那样。

【问题讨论】:

【参考方案1】:

嘿 @user426132 设置 UIbutton 背景图像并尝试此代码

对于Objective-c

self.button.layer.cornerRadius = self.button.frame.size.width / 2;
self.button.layer.masksToBounds = false;
self.button.layer.shadowColor = UIColor.grayColor.CGColor;
self.button.layer.shadowOpacity = 1.0;
self.button.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
self.button.layer.shadowRadius = 10;
self.button.layer.shouldRasterize = true;
self.button.layer.rasterizationScale = UIScreen.mainScreen.scale;

对于 Swift 4.2

    self.btnShadow.layer.cornerRadius =  self.btnShadow.frame.size.width / 2
    self.btnShadow.layer.masksToBounds = false
    self.btnShadow.layer.shadowColor = UIColor.black.cgColor
    self.btnShadow.layer.shadowOpacity = 1.0
    self.btnShadow.layer.shadowOffset = CGSize(width: 0, height: 0)
    self.btnShadow.layer.shadowRadius = 10
    self.btnShadow.layer.shouldRasterize = true
    self.btnShadow.layer.rasterizationScale = UIScreen.main.scale

输出在这里是,黑色十字是图像

【讨论】:

设置背景图片是什么意思? 如果你想得到相同的 [i.stack.imgur.com/a1tVW.png] 按钮看起来那么设置你的图像按钮图像。

以上是关于带边框和阴影的圆形按钮的主要内容,如果未能解决你的问题,请参考以下文章

CSS-CSS3 Safari风格工具栏按钮圆形框阴影按下边框半径Moz,Firefox,K

如何在圆形 imageView android 上添加一个阴影和边界

css 使用边框和阴影制作图像圆形。

如何在圆形imageView android上添加阴影和边框?

Swift Left Side只有带边框的圆形按钮

关于怎么用border实现三角形。圆形。以及给边框家阴影效果。