有边框的iOS 8按钮Swift

7
我想在我的UIButton周围有一个扁平的白色边框。我希望它可以通过Storyboard或编程实现。我的代码无效。 代码:
UIButton.layer.cornerRadius = 2;
UIButton.layer.borderWidth = 1;
UIButton.layer.borderColor = UIColor.whiteColor()

1
你能详细说明一下“不起作用”的具体情况吗?是因为你试图在UIButton类上设置属性,而不是该类的实例吗? - Mick MacCallum
1
UiButton.type 没有名为 layer 的成员是错误的。 - Palash Sharma
对,UIButton类型没有您尝试访问的属性。您需要该类的一个实例。 - Mick MacCallum
但是在这个网页中,已经使用了这个类。 - Palash Sharma
我也导入了QuartzCore。 - Palash Sharma
这些确实是UIButton,但它们是该类的实例,而不是类本身。你需要理解类和实例之间的区别。理解这一点将澄清你代码中的问题。 - Mick MacCallum
6个回答

16

你应该在故事板中为按钮创建引用插座,例如命名为myButton,并设置它的属性。

myButton.layer.cornerRadius = 2;
myButton.layer.borderWidth = 1;
myButton.layer.borderColor = UIColor.whiteColor().CGColor

5
您无需编写代码即可完成此操作。您可以创建一个可伸缩的图像,并将其设置为属性检查器中按钮的背景图像。enter image description here

链接不可用。 - ursa
谢谢,链接已被移除。 - iOSAaronDavid

1
正如0x7fffffff所说,UIButton是一个类,可以通过调用它的构造函数来实例化,如下所示:
let instanceOfUIButton = UIButton()

然后您可以设置所需的属性:
instanceOfUIButton.layer.cornerRadius = 2;

0
在顶部添加这行代码
myButton.layer.masksToBounds = true

0
在Xcode 8.2(Swift 3)中,您可以使用“Identity Inspector Tab”。“选择您的UIButton后搜索“Users Defined Runtime Attributes”。在那里,您可以定义这些属性:
  1. 键路径:layer.cornerRadius;类型:数字;值:2
  2. 键路径:layer.borderWidth;类型:数字;值:1
  3. 键路径:layer.borderColor;类型:颜色;值:“选择白色或其他颜色”

0

除了为每个按钮创建引用之外,另一个选择是创建类型UIButton的子类。然后,您可以在子类中设置属性。接下来,您可以更改故事板中需要具有相同属性的所有按钮的类。

class MyButton: UIButton {

 override func draw(_ rect: CGRect) {
        super.draw(rect)
        layer.borderWidth = 1.0
        layer.borderColor = UIColor.White
        layer.cornerRadius = 2
    }

}

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