Swift:在 UIButton 类中设置宽度和高度

Posted

技术标签:

【中文标题】Swift:在 UIButton 类中设置宽度和高度【英文标题】:Swift: Setting width and height within a UIButton class 【发布时间】:2015-02-26 14:56:00 【问题描述】:

所以我的故事板上有一个 60x60 的按钮并为它设置了一个类。

class CustomRedButton: UIButton 

    required init(coder aDecoder: NSCoder) 

        super.init(coder: aDecoder)

        self.layer.cornerRadius         = 0.5 * self.bounds.size.width
        self.backgroundColor            = UIColor.redColor()
        self.titleLabel!.font           = UIFont(name: "Futura", size: 25)
        self.titleLabel!.textAlignment  = .Center

    

我想要做的是根据屏幕大小调整按钮的大小以及其中的字体。

【问题讨论】:

通过这个关于自适应布局的精彩教程设法解决了大部分问题,但仍然更喜欢用代码来解决...mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus 【参考方案1】:

在初始化时在 ViewController 中使用 view.bounds.maxX 和 view.bounds.maxY。

这就是我正在做的,但它只改变宽度,而不是高度或字体大小。

    button1 = UIButton(frame: CGRect(x: 0, y: 0, width: (view.bounds.maxX / 2) - 10, height: 50))
    button1.center = CGPoint(x: view.bounds.midX - button1.bounds.width / 2 - 5, y: view.bounds.maxY - 160)

    button2 = UIButton(frame: CGRect(x: 0, y: 0, width: (view.bounds.maxX / 2) - 10, height: 50))
    button2.center = CGPoint(x: view.bounds.midX + button1.bounds.width / 2 + 5, y: view.bounds.maxY - 160)

    button3 = UIButton(frame: CGRect(x: 0, y: 0, width: (view.bounds.maxX / 2) - 10, height: 50))
    button3.center = CGPoint(x: view.bounds.midX - button1.bounds.width / 2 - 5, y: view.bounds.maxY - 100)

    button4 = UIButton(frame: CGRect(x: 0, y: 0, width: (view.bounds.maxX / 2) - 10, height: 50))
    button4.center = CGPoint(x: view.bounds.midX + button1.bounds.width / 2 + 5, y: view.bounds.maxY - 100)

要将高度设置为(view.bounds.maxY / 16(或由您决定的任何数字))- 10(按钮之间的间距乘以 2)并更改中心点以反映高度

要对字体大小执行相同操作,请使用 view.bounds.maxX 并将其除以 40 之类的值。你明白了。

【讨论】:

以上是关于Swift:在 UIButton 类中设置宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章

UIButton 标签显示 0 宽度

如何在 Swift 3 中设置 UIButton 的图像?

如何在 Swift 中以编程方式调整 UIButton 中文本的字体大小以适应宽度?

Swift 在情节提要中设置 UIButton setBorderColor

在 Swift 中设置 UIButton 图像 - 当前解包为 nil

如何在listview控件中设置表格的宽和高