较小尺寸的按钮不是带有 layer.cornerRadius 的圆形

Posted

技术标签:

【中文标题】较小尺寸的按钮不是带有 layer.cornerRadius 的圆形【英文标题】:Button at smaller size not round with layer.cornerRadius 【发布时间】:2017-05-24 12:01:01 【问题描述】:

我尝试创建一个按钮并使用该代码为其设置样式:


    button.tintColor = UIColor.white
    button.contentEdgeInsets = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)
    button.backgroundColor = .clear
    button.layer.cornerRadius = 50
    button.layer.borderWidth = 2
    button.layer.borderColor = UIColor.white.cgColor

我的按钮大小是 100x100,如果我把它变小(例如 80x80,如下所示),边框不再是圆形的:

我怎样才能得到圆心圆呢?

【问题讨论】:

【参考方案1】:

使用下面的代码

button.layer.cornerRadius = button.frame.size.width/2

确保每次的高度和宽度都相等。

【讨论】:

它成功了,谢谢你......这么简单,但我自己没有得到它......冷却后会接受你的答案。【参考方案2】:

请将角半径设置为 buttonWidth/2。我假设您的按钮具有相同的宽度和高度。

button.layer.cornerRadius = button.frame.size.width/2

【讨论】:

以上是关于较小尺寸的按钮不是带有 layer.cornerRadius 的圆形的主要内容,如果未能解决你的问题,请参考以下文章

当单元格即将离开屏幕时,UICollectionView Cell 的阴影突然消失

尝试调整我的 UIView 容器以适应较小的 iPhone 屏幕尺寸

AdMob 无法在较小的屏幕尺寸上加载广告

(Swift) 以编程方式将 UIButton 约束到角落

调整按钮以适应不同的屏幕尺寸

带有按钮的尺寸等级和约束