如何通过标题大小设置 UIButton 大小?

Gol*_*rii 5 uibutton cgsize swift

我有 UIButton,它的标题是动态变化的。按钮大小应随标题大小而变化,并且与标题大小相同。

如何在 Swift 中以编程方式执行此操作?

vac*_*ama 7

要让您的按钮使用其内在内容大小并根据其文本自动调整大小,请使用自动布局来定位按钮。只设置约束来定位按钮,iOS 将使用文本的大小来确定按钮的宽度和高度。

例如:

let button = UIButton()

// tell it to NOT use the frame
button.translatesAutoresizingMaskIntoConstraints = false

button.setTitle("Hello", for: .normal)
view.addSubview(button)

button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
Run Code Online (Sandbox Code Playgroud)

如果您在故事板中创建按钮,这也适用。同样,只给出放置按钮的约束,它会调整大小以适应文本。


小智 2

请按照以下步骤操作(这不是正确的解决方案,但您可以通过这样做来解决您的问题)

  1. 创建一个UILabel(因为UILabel根据文本调整其高度和宽度)
  2. UIlabel行数为1
  3. 通过 UILabel 创建 UIButton
  4. 将按钮标题设置为“”
  5. 设置按钮的约束:将按钮的顶部与 UILabel 对齐并等于宽度和高度

希望这对你有用:)