如何在 Swift 中调整 UIButton 的标题和图像大小?

问题描述 投票:0回答:1

我有一个带有标题和图像的 UIButton。按钮的大小会动态变化,但按钮内的标题文本和图像不会按比例调整大小以匹配按钮的大小。我想确保标题和图像都根据按钮的框架自动调整其大小,以保持平衡的外观。

故事板按钮配置 -> 图像

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var myBtn: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
}
模拟器上的

按钮 -> 图像

我为 UIButton 设置了标题和图像,希望它们能够在按钮的框架发生变化时自动调整大小。但是,标题和图像保持相同的大小,不随按钮按比例缩放。我希望两者都能动态调整以适应按钮的新尺寸,但这并没有发生。

swift xcode uikit uibutton storyboard
1个回答
0
投票

这是一个简单的解决方案,可确保 UIButton 的标题和图像根据按钮的框架动态调整大小:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var myBtn: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        myBtn.imageView?.contentMode = .scaleAspectFit

        myBtn.titleLabel?.adjustsFontSizeToFitWidth = true
        myBtn.titleLabel?.minimumScaleFactor = 0.5
        
        myBtn.contentEdgeInsets = UIEdgeInsets(top: 5, left: 10, bottom: 5, right: 10)
        myBtn.titleEdgeInsets = UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 0)
        myBtn.imageEdgeInsets = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5)
    }
}

说明:

  1. 图像大小调整: imageView 的 contentMode 属性确保图像按比例缩放以适合按钮。
  2. 文本调整大小: adjustmentFontSizeToFitWidth 和minimumScaleFactor 允许调整文本大小以适合按钮的宽度。
  3. 边缘插入:调整按钮内容(图像和文本)与边缘之间的间距以更好地对齐。

这种方法可确保标题和图像随着按钮大小的变化而动态调整。

© www.soinside.com 2019 - 2024. All rights reserved.