如何在 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 中创建一个圆形按钮? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Qt Designer 中创建圆形按钮

如何在 Flutter 中创建圆形图标按钮?

在 Swift 中创建自定义(八角形)UIButton 的最佳方法

尝试在 Swift 中创建圆形 UIView 时出错

如何在 MFC 中创建圆角矩形按钮

Swift:如何在应用程序中创建核心数据实体 [关闭]