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

时间:2018-08-12 12:21:10

标签: swift xcode uibutton cornerradius

我正在尝试制作一个完全圆形的按钮。我已经在代码中创建了它,并设置了如下约束:

    addButton.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.2).isActive = true
    addButton.heightAnchor.constraint(equalTo: addButton.widthAnchor).isActive = true
    addButton.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -30).isActive = true
    addButton.rightAnchor.constraint(equalTo: view.safeAreaLayoutGuide.rightAnchor, constant: -30).isActive = true

然后我尝试使用以下方法设置按钮的拐角半径:

    addButton.layer.cornerRadius = 
    addButton.layer.masksToBounds = true

但是我不知道在拐角半径中要放什么。我已经尝试过frame.width / 2,但按钮仍然是正方形。我需要获取宽度约束的值,但无法将其转换为CGFloat。

有关如何执行此操作的任何建议?

谢谢

2 个答案:

答案 0 :(得分:2)

放入viewDidLayoutSubviews

addButton.layer.cornerRadius = self.view.frame.width * 0.1 

答案 1 :(得分:0)

您可以使用 @Sh_Khan (URL:https://stackoverflow.com/a/51808795/7425588)发布的上述答案,也可以使用以下答案:

addButton.layer.cornerRadius = addButton.widthAnchor.constant / 2.0
addButton.clipToBounds = true

记住要使UIObject完整圆形,使其高度和宽度相等或纵横比为1:1。将clip的边界设置为true,并将角半径设置为宽度或高度的一半。