给UIButton添加背景阴影

3

如何给UIButton添加浅灰色阴影,目前我不想使用方法来实现,应该是这样的:

UIButton *button1... button1.layer.shadowOpacity = 0.8

等等,但那样不起作用,它只在按钮内部添加了一个阴影,但我需要它在外面。谢谢!


2
请查看此链接:https://dev59.com/i3E95IYBdhLWcg3wbtXO - Midhun MP
我已经看过了,但我不想要方法。另外,如果有帮助的话,我正在向表格单元格添加一个按钮。 - sebi
1
请仅返回翻译后的文本:请检查“fzwo”给出的答案,那不是一个方法。 - Midhun MP
我尝试过了,甚至创建了一个按钮对象并将self替换为按钮名称,但仍然无法工作。 - sebi
好的,我想我明白了。使用一个阴影半径为12时,我看不到阴影,但将其调整为3后,我想我搞定了。谢谢! - sebi
是的,但我用了不同的方法。 - sebi
2个回答

11

首先你需要#import <QuartzCore/QuartzCore.h>。然后:

mybtn.layer.shadowColor = [UIColor blackColor].CGColor;
mybtn.layer.shadowOpacity = 0.5;
mybtn.layer.shadowRadius = 2;
mybtn.layer.shadowOffset = CGSizeMake(3.0f,3.0f);

0

你也可以使用–[UIButton setBackgroundImage:forState:]来设置带有阴影的UIControlStateNormal背景图片。例如:

[button setBackgroundImage:[UIImage imageNamed:@"ButtonBackgroundNormal"]
                 forState:UIControlStateNormal];

其中ButtonBackgroundNormal.png有一个阴影。与使用代码绘制相比,图像通常渲染更快。而且速度很重要,特别是如果您将其添加到UITableViewCell中。在这种情况下,为了加快滚动速度,请确保背景图像完全不透明,方法是将其设计为与UITableViewCell的相同背景颜色,并保存时不带透明度。然后,设置button.opaque = YES


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接