在swift4中制作循环按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在swift4中制作循环按钮相关的知识,希望对你有一定的参考价值。

我有很少的按钮是从故事板(而不是代码)添加的。我想让它呈圆形。我该怎么做?我不想从代码中添加一个圆形按钮,而是从storyboard.Thanks

答案

即使在故事板中,您也可以利用IBDesginable制作UIButton圆形。

在您的项目中添加此类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中进行设计。

  1. 在viewcontroller中添加UIButton并设置一些背景颜色。

enter image description here

  1. 设置宽度和高度相同。这两个都是100。

enter image description here

  1. 现在你可以看到我们在Corner Radius类中声明的另一个名为RoundButton的属性。将其设置为50作为宽度/高度的一半。您可以根据需要进行设置。

enter image description here

现在,您可以在故事板中看到圆角按钮。您无需运行代码即可查看更改。您可以在任何其他项目中重复使用类来使按钮循环。

关于IBDesignable的更多信息。

另一答案
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)

以上是关于在swift4中制作循环按钮的主要内容,如果未能解决你的问题,请参考以下文章

在 Activity 内部,如何暂停 for 循环以调用片段,然后在按钮单击片段后恢复循环以重新开始

如何在swift 4中消失没有按钮的侧边菜单

你如何在循环中制作单选按钮

从单个按钮从多个片段中提取数据

Swift 4 - 获得按钮宽度的一半

在swift4中查找按钮的文本颜色