为按钮添加边框和阴影

9

我想在我的iPad应用程序中添加中等粗细的黑色边框和阴影到已添加的按钮上。我已将这些按钮自定义,因为我在它们上面应用了图像。我该如何为它们添加边框和阴影?

2个回答

55

要添加阴影和边框很简单。

1)将QuartzCore框架添加到您的目标中。
2)在您想要添加边框和阴影的类中导入框架头文件。(或者如果您为按钮创建了自定义类,则可以在该类中简单地导入此框架。)
3)要将边框添加到按钮中,请使用以下代码(其中button是与界面中的按钮连接的IBOutlet):

[self.button.layer setBorderWidth:3.0];
[self.button.layer setBorderColor:[[UIColor blackColor] CGColor]];


4) 使用以下代码将阴影添加到按钮:

[self.button.layer setShadowOffset:CGSizeMake(5, 5)];
[self.button.layer setShadowColor:[[UIColor blackColor] CGColor]];
[self.button.layer setShadowOpacity:0.5];
你可以尝试更改这些值,看看它们如何影响行为。

嗨,阿斯兰,谢谢伙计,你的代码好使。 我只需要做一些小改动。 我还想知道另外一件事情。 最初我的按钮是圆角的,在使用你的代码后,角落不再是圆角了。 那么我该怎么做才能让它们像最初一样有圆角呢? 问候 PC - Prateek Chaubey
2
@PrateekChaubey 很高兴知道它对你有帮助 :) ... 是的,你可以使用以下代码将边框的角设置为圆角矩形[self.button.layer setCornerRadius:5.0]; - Arslan
我使用一个自定义的UIButton类'UIDictButton',并使用代码自定义我的按钮,但没有阴影,只有边框。如果要设置cornerRadius,可能需要将maskbouds设置为YES。 - frank
@frank。你能分享一下你用来给按钮添加阴影的代码吗?你需要调整阴影偏移值以获得所需的效果。 - Arslan
你好,Arslan,你知道如何在Mac应用程序中使用NSButton吗? - Sid

0

如果您使用的是Cocoa,您可以使用NSView的setShadow方法。(NSView是NSButton的祖先。)我没有看到UIView的等效方法,因此我认为在iOS中没有任何简单的方法来实现这一点。想想看,在iOS应用程序中,我认为我从未见过那种效果。

但既然您已经使用自定义按钮图像,为什么不准备包括阴影和边框的图像呢?


1
我的设计师没有提供带边框的图片。我要求他给我新的图片,但现在我的经理说他不会给我新的图片。我必须自己应用边框和阴影。 - Prateek Chaubey

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