在 swift4 中制作圆形按钮
Making Buttons Circular in swift4
我有几个按钮是从 Storyboard 添加的(不是通过代码)。我想把它做成圆形。我该怎么做?我不想从代码中添加圆形按钮,而是从 storyboard.Thanks
let button = UIButton(type: .custom)
button.frame = CGRect(x: 160, y: 100, width: 50, height: 50)
button.layer.cornerRadius = 0.5 * button.bounds.size.width
button.clipsToBounds = true
button.setImage(UIImage(named:"thumbsUp.png"), for: .normal)
button.addTarget(self, action: #selector(thumbsUpButtonPressed), for: .touchUpInside)
即使在故事板中,您也可以使用 IBDesginable
制作 UIButton
循环。
在您的项目中添加此 class RoundButton
。
@IBDesignable class RoundButton : UIButton{
override init(frame: CGRect) {
super.init(frame: frame)
sharedInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sharedInit()
}
override func prepareForInterfaceBuilder() {
sharedInit()
}
func sharedInit() {
refreshCorners(value: cornerRadius)
}
func refreshCorners(value: CGFloat) {
layer.cornerRadius = value
}
@IBInspectable var cornerRadius: CGFloat = 15 {
didSet {
refreshCorners(value: cornerRadius)
}
}
}
按照以下步骤使其在 Storyboard 中可设计。
- 在viewcontroller中添加
UIButton
并设置一些背景颜色。
- 设置宽度和高度相同。这里都是100.
- 现在您可以看到我们在
RoundButton
class 中声明的另一个名为 Corner Radius
的 属性。将其设置为 50 作为 Width/Height 的一半。可以根据自己的需要设置。
现在您可以在故事板中看到圆角按钮。您无需 运行 代码即可查看更改。您可以在任何其他项目中重复使用 class 以使按钮循环。
更多关于 IBDesignable。
非常简单易行。
yourButton.layer.cornerRadius = yourButton.frame.width/2
这肯定会奏效。
吃睡代码重复
我有几个按钮是从 Storyboard 添加的(不是通过代码)。我想把它做成圆形。我该怎么做?我不想从代码中添加圆形按钮,而是从 storyboard.Thanks
let button = UIButton(type: .custom)
button.frame = CGRect(x: 160, y: 100, width: 50, height: 50)
button.layer.cornerRadius = 0.5 * button.bounds.size.width
button.clipsToBounds = true
button.setImage(UIImage(named:"thumbsUp.png"), for: .normal)
button.addTarget(self, action: #selector(thumbsUpButtonPressed), for: .touchUpInside)
即使在故事板中,您也可以使用 IBDesginable
制作 UIButton
循环。
在您的项目中添加此 class RoundButton
。
@IBDesignable class RoundButton : UIButton{
override init(frame: CGRect) {
super.init(frame: frame)
sharedInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sharedInit()
}
override func prepareForInterfaceBuilder() {
sharedInit()
}
func sharedInit() {
refreshCorners(value: cornerRadius)
}
func refreshCorners(value: CGFloat) {
layer.cornerRadius = value
}
@IBInspectable var cornerRadius: CGFloat = 15 {
didSet {
refreshCorners(value: cornerRadius)
}
}
}
按照以下步骤使其在 Storyboard 中可设计。
- 在viewcontroller中添加
UIButton
并设置一些背景颜色。
- 设置宽度和高度相同。这里都是100.
- 现在您可以看到我们在
RoundButton
class 中声明的另一个名为Corner Radius
的 属性。将其设置为 50 作为 Width/Height 的一半。可以根据自己的需要设置。
现在您可以在故事板中看到圆角按钮。您无需 运行 代码即可查看更改。您可以在任何其他项目中重复使用 class 以使按钮循环。
更多关于 IBDesignable。
非常简单易行。
yourButton.layer.cornerRadius = yourButton.frame.width/2
这肯定会奏效。 吃睡代码重复