【问题标题】:Swift 4 - Getting half the width of a buttonSwift 4 - 获得按钮宽度的一半
【发布时间】:2018-08-12 12:21:10
【问题描述】:

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

    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。

关于如何做到这一点的任何建议?

谢谢

【问题讨论】:

  • 问题是使用圆角半径使按钮变成圆形是一种愚蠢而粗暴的方法。如果您想要一个看起来是圆形的按钮,请将圆形背景图像和/或蒙版绘制成圆形。

标签: swift xcode uibutton cornerradius


【解决方案1】:

viewDidLayoutSubviews里面放

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

【讨论】:

    【解决方案2】:

    您可以使用 @Sh_Khan 发布的上述答案(网址:https://stackoverflow.com/a/51808795/7425588)或使用以下内容:

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

    记得把 UIObject 做成一个完整的圆形,让它的高度和宽度相等或纵横比为 1:1。将 clip 的 bounds 设置为 true,并将角半径设置为宽度或高度的一半。

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 2013-04-17
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-27
      • 1970-01-01
      相关资源
      最近更新 更多