Swift 4 - 获得按钮宽度的一半
Posted
技术标签:
【中文标题】Swift 4 - 获得按钮宽度的一半【英文标题】:Swift 4 - Getting half the width of a button 【发布时间】: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。
关于如何做到这一点的任何建议?
谢谢
【问题讨论】:
问题是使用圆角半径使按钮变成圆形是一种愚蠢而粗暴的方法。如果您想要一个看起来是圆形的按钮,请将圆形背景图像和/或蒙版绘制成圆形。 【参考方案1】:在viewDidLayoutSubviews
里面放
addButton.layer.cornerRadius = self.view.frame.width * 0.1
【讨论】:
【参考方案2】:您可以使用 @Sh_Khan 发布的上述答案(网址:https://***.com/a/51808795/7425588)或使用以下内容:
addButton.layer.cornerRadius = addButton.widthAnchor.constant / 2.0
addButton.clipToBounds = true
记得把 UIObject 做成一个完整的圆形,让它的高度和宽度相等或纵横比为 1:1。将 clip 的 bounds 设置为 true,并将角半径设置为宽度或高度的一半。
【讨论】:
以上是关于Swift 4 - 获得按钮宽度的一半的主要内容,如果未能解决你的问题,请参考以下文章
Android开发点滴 - 如何使按钮水平垂直居中且始终占据屏幕宽度一半
我们可以在 swift 中更改 UIAlertController 按钮的高度和宽度吗