所有4面的UIButton阴影

时间:2014-11-20 11:33:09

标签: objective-c uibutton ios8 shadow

我正在尝试为UIButton生成阴影。

以下是我正在使用的内容。

myButton.layer.shadowColor = [UIColor blackColor].CGColor;
myButton.layer.shadowOpacity = 0.5;
myButton.layer.shadowRadius = 1;
myButton.layer.shadowOffset = CGSizeMake(4, 4);
myButton.layer.masksToBounds = NO;

但它在右下方产生阴影。

我可以在四面都有阴影吗?

作为另一种解决方案,我通过在按钮后面放置带阴影的图像来做到这一点,但我不想这样做。

有没有办法以编程方式完成这项工作?

如下所示。

enter image description here

1 个答案:

答案 0 :(得分:8)

由于您将阴影偏移{4, 4},因此阴影会出现在按钮的右下方。您可以设置零偏移:

myButton.layer.shadowOffset = CGSizeZero

通过调整shadowRadius你可能会达到你想要的效果。

以下是阴影的构建方式:

(第1行)从按钮的形状开始

(第2行)在按钮下方绘制一个黑色形状,并将其翻译为shadowOffset中指定的数量:左侧为10px,右侧为0px。在右侧,您无法看到黑色矩形,因为它直接位于按钮

下方

(第3行)按照blurRadius中指定的量模糊黑色矩形。零意味着没有模糊,黑色矩形会保持清晰,所以如果你没有偏移而不模糊,你什么也看不见。

enter image description here