如何更改 UIButton 中 SF 图标的大小

Rob*_*ack 10 icons uibutton

这里很简单的问题。我想更改 UIButton 中 SF 图标的大小。我试过用 20 种方法到星期三。

  1. 我尝试设置 EdgeInsets - 没有骰子
  2. 我尝试重置按钮的 imageView 的 contentMode - 不让步
  3. 试图改变图像的字体大小 - 哇?

必须有一个简单的方法来做到这一点。提前致谢。

Rob*_*ack 32

更新: 看起来你可以使用Default Symbol ConfigurationUIButton 上的设置Attributes Inspector来完成同样的事情。全部归功于下面的 Andrew Kirna。多谢,伙计!

在此处输入图片说明


成功!!!多亏了一篇关于 SF Symbols 的精彩文章,我终于想出了如何做到这一点。它肯定被埋在那里。

在情节提要中调整按钮图像的大小真的很好,不是吗?至少我是这么认为的。

1) 在 Xcode 中将 IconButton.swift 添加到您的项目中。

import UIKit

@IBDesignable
class IconButton: UIButton {
    @IBInspectable var pointSize:CGFloat = 30.0

    override func layoutSubviews() {
        super.layoutSubviews()
        if #available(iOS 13.0, *) {
            let config = UIImage.SymbolConfiguration(pointSize: pointSize)
            setPreferredSymbolConfiguration(config, forImageIn: .normal)
        } else {
            // Fallback on earlier versions
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

2) 在storyboard 中创建一个按钮,以SF 图标作为图像。

3) 转到身份检查器并将按钮的类设置为 IconButton

4)转到属性检查器并输入您的磅值。请注意,这是height of the iconx 3/4。我想要一个 40 x 40 的图标,所以我的点大小是 30。

5) 在故事板中看到您的图标更新,并为您没有花 3 个小时弄清楚这一点而高兴地笑了 :D

这篇伟大文章的一些功劳:https : //www.avanderlee.com/swift/sf-symbols-guide/

  • 谢谢罗布。好发现!我使用“属性检查器”中 UIButton 上的“默认符号配置”设置来完成相同的操作。它不会在情节提要中更新,但会在运行时运行。 (2认同)

alg*_*rid 13

这对我有用(如果你想以编程方式实现):

let config = UIImage.SymbolConfiguration(
    pointSize: 32, weight: .medium, scale: .default)
let image = UIImage(systemName: "magnifyingglass", withConfiguration: config)
button.setImage(image, for: .normal)
Run Code Online (Sandbox Code Playgroud)