如何在 Swift 中创建一个圆形按钮? [关闭]
Posted
技术标签:
【中文标题】如何在 Swift 中创建一个圆形按钮? [关闭]【英文标题】:How to create a circular button in Swift? [closed] 【发布时间】:2014-09-26 01:26:11 【问题描述】:我想制作一个圆形的拇指向上和拇指向下按钮。
我应该使用 ImageView 还是 Button 作为超类?
我将如何在 Swift 中做到这一点?
【问题讨论】:
【参考方案1】:这是一个圆形按钮示例:
Swift 3、4、5:
override func viewDidLoad()
super.viewDidLoad()
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)
view.addSubview(button)
@objc func thumbsUpButtonPressed()
print("thumbs up button pressed")
Swift 2.x:
override func viewDidLoad()
super.viewDidLoad()
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"), forState: .Normal)
button.addTarget(self, action: #selector(thumbsUpButtonPressed), forControlEvents: .TouchUpInside)
view.addSubview(button)
func thumbsUpButtonPressed()
print("thumbs up button pressed")
【讨论】:
为了让它工作,我必须添加button.clipsToBounds = true
有什么办法可以通过约束来做到这一点?我没有使用button.frame = CGRect...
代码。
@ArchieGertsman,当然。设置纵横比约束(宽度 == 高度),使您的按钮是方形的。然后将代码 button.layer.cornerRadius = ...
移动到覆盖 viewDidLayoutSubviews
。您必须在此处执行此操作,因为您需要确保 Auto Layout 已运行。
谢谢!完美运行..
您好,是否有适用于 swift 5 的版本?以上是关于如何在 Swift 中创建一个圆形按钮? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章