Objective c 在所有4个边上都有一个按钮阴影

Objective c 在所有4个边上都有一个按钮阴影,objective-c,uibutton,ios8,shadow,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; 但它在右边和底部产

我正在尝试为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;
但它在右边和底部产生阴影

有没有办法让四面都有阴影

作为另一种解决方案,我会将带有阴影的图像放在按钮后面,但我不想这样做

有没有办法通过编程来完成这项工作

像下面这样


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

myButton.layer.shadowOffset = CGSizeZero
通过调整
阴影半径
,您可能会达到您想要的效果

下面是阴影的构建方式:

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

(第二行)在按钮下方绘制一个黑色形状,并按照
阴影偏移量中指定的量进行平移:左侧为10px,右侧为0px。在右边,你看不到黑色矩形,因为它就在按钮的正下方

(第三行)按
blurRadius
中指定的量模糊黑色矩形。零表示没有模糊,黑色矩形将保持锐利,因此如果不偏移也不模糊,将什么也看不到


我相信CGSizeZero等同于CGSizeMake(0,0),这意味着不会有任何阴影。。。对吗?不,这意味着阴影不会偏移,它将位于按钮的中心。如果您提供的半径大于零,则阴影将在按钮的所有侧面均匀出血。仍然不会出现。。我有layer.shadowRadius=0;&layer.shadowOffset=CGSizeZero;提供8的半径,而不是0。如果不模糊(半径=0)且不偏移阴影,则不会看到任何东西。我将更新我的答案,向您展示它的工作原理。self.ResetNo.layer.shadowRadius=8.0;像这样设置半径,但看起来不像上一张图片。请回答&谢谢