iOS按钮 - 添加边框

54

我正在为iOS7准备我的应用程序。我已经进行了转换,并与用户一起工作。 应用程序中的按钮看起来不像按钮,而是非常平坦。 有什么办法可以加边框或使它看起来像一个按钮吗?

8个回答

109

试试这个添加边框的方法,它会起作用

#import <QuartzCore/QuartzCore.h>

那么在viewDidLoad方法中

_btn.layer.borderWidth=1.0f;
_btn.layer.borderColor=[[UIColor blackColor] CGColor];
_btn.layer.cornerRadius = 10;

您也可以填充颜色,使外观类似按钮,或者最好的方法是在那里使用图像。

除了BorderColor,您也可以使用运行时属性来完成它。

输入图片描述


这对我没有用。仍在尝试在iOS 7上为UIButton添加边框,而不必使用图像。 - Alyoshak
我不知道为什么你没有得到边框,对我来说它很好用。它是否出现任何错误或只是没有显示任何效果? - Mehul Thakkar
@Alyoshak 这确实添加了一个黑色边框。 Aly,你是否将“_btn”更改为你的按钮名称?此外,如果你的应用程序仍然适用于旧版IOS版本,则这不是最佳解决方案,因为它会添加黑色边框,但你仍然可以看到原始按钮的边框。:/ 新的按钮看起来根本不像按钮。甚至文本也变灰了。看起来很糟糕。 - James
2
其实,我刚刚找到了cornerRadius属性。 _btn.layer.cornerRadius=8.0f; 所以改变半径并设置浅灰色边框颜色,然后我想移除圆角矩形按钮类型属性,这样IOS7和之前的版本看起来就一样了。 - James
borderWidth,borderColor和cornerRadius对我很有帮助。我还加上了...layer.shadowOpacity = 0.0f;,但我不能保证它起到了作用。 - JMD

44

尝试这个,它会为按钮设置边框

#import <QuartzCore/QuartzCore.h>

btn.layer.borderColor = [UIColor blackColor].CGColor;

btn.layer.borderWidth = 1.0;

btn.layer.cornerRadius = 10;

23

使用Swift和XCode 6,您可以做到这一点。

在Storyboard中单击UIButton元素,进入标识检查器。在用户定义的运行时属性中,输入:

layer.borderWidth number 1

如果您想要漂亮的圆角

layer.cornerRadius number 5
layer.maskToBounds boolean true

现在这会给你一个边框,但要设置颜色,你需要用代码来做。转到您的视图控制器,并从按钮中添加一个IBOutlet。请注意,在这种情况下,它是一个IBOutlet,而不是一个IBAction。例如:

@IBOutlet weak var xButton: UIButton!

在viewDidLoad函数中像下面这样调用它以设置颜色。

xButton.layer.borderColor = UIColor.whiteColor().CGColor

谢谢!


15

iOS7的设计原则已经发生了改变。然而,如果你想要更加扁平化的设计,但仍然希望使用一个自定义“像按钮一样突出”的按钮,你可以尝试使用这个开源组件集:

GitHub上的FlatUIKit


有没有一种方法可以将默认的返回按钮设置为与UIColor turquoiseColor相同的颜色? - user1509593
1
嗯..我相信是这样的。在appDidFinishLaunching:方法中添加以下代码[[[UIBarButtonItem] appearance] setTintColor:<你选择的颜色在这里>]; - Nikola Kirev

2

在iOS 7中,有两种简化按钮的方法:

1>设置图像:就像使用setImage属性为按钮设置图像一样

2>设置边框颜色和边框宽度:

button.layer.borderWidth=1.0f;

button.layer.borderColor=[[UIColor blackColor] CGColor];


1

BButton是一个很棒且简单易用的替代方案。 - ohho

0

如果您使用了背景图片,请将按钮向后移动。 编辑器>排列>向后发送


-3
在iOS7中,按钮应该看起来没有边框。请参考苹果的视图转换指南获取帮助。
如果你真的想让按钮有边框,请使用[button setImage:forState:]设置一个带有边框的自定义按钮图像。

7
至少在App Store中,它们并不是无边界的。 - hpique

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