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

How to change the size of an SF icon in a UIButton

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

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

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

您可以使用 Attributes Inspector 中 UIButton 的 Default Symbol Configuration 设置来完成同样的事情。以下全部归功于 Andrew Kirna。谢谢老兄!


成功!!!多亏了 SF Symbols 上的 great article,我终于想出了如何做到这一点。它肯定被埋在那里了。

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

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

    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
            }
        }
    }
    
  2. 在 Storyboard 中创建一个以 SF 图标作为图像的按钮。

  3. 转到身份检查器并制作 class 按钮 IconButton

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

  5. 在情节提要中看到你的图标更新并高兴地笑你没有花 3 个小时来解决这个问题:D

感谢这篇伟大的文章:https://www.avanderlee.com/swift/sf-symbols-guide/

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

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