首页 > 解决方案 > 如何更改 UIButton 中 SF 图标的大小

问题描述

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

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

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

标签: uibuttonicons

解决方案


您可以使用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
            }
        }
    }
    
  2. 在情节提要中创建一个带有 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/


推荐阅读