【问题标题】:How do I resize a SF Symbol button in SwiftUI?如何在 SwiftUI 中调整 SF Symbol 按钮的大小?
【发布时间】:2021-09-19 02:06:19
【问题描述】:

我正在尝试在 SwiftUI 中调整 SF Symbol 按钮的大小。我试过.font(.system(size: 60)).imageScale(.medium) 但它不起作用。它仍然有同样的错误。这是我的代码:

var buttons: [Button<Image>] = [
    Button(action: {
        print("Add tapped")
    }) {
        Image(systemName: "plus.circle.fill")
    }
]

【问题讨论】:

  • 为什么你需要一个数组和/或当你在视图中使用按钮时不能应用大小?

标签: swift swiftui sf-symbols


【解决方案1】:

求助UIImage

var buttons: [Button<Image>] = [
    Button(action: {
        print("Add tapped")
    }) {
        let config = UIImage.SymbolConfiguration(font: UIFont.systemFont(ofSize: 60))
        let image = UIImage(systemName: "plus.circle.fill", withConfiguration: config) ?? UIImage()
        return Image(uiImage: image)
    }
]

但问题仍然是你为什么需要这个[Button&lt;Image&gt;]???

【讨论】:

  • 谢谢。有用!我是新手,我正在尝试制作一个 customNavigationView。
  • @Na'imRoslan 如果对您有帮助,您可以接受/支持回答者
  • 很抱歉我不能。我需要 15 声望才能投票。对不起?
【解决方案2】:

如果全部失败,则可以选择使用SFSymbols 调整UIImage 的大小。如果您不介意将程序延长一点,我建议您使用,

extension UIImage {
    func resized(to newSize: CGSize) -> UIImage? {
        UIGraphicsBeginImageContextWithOptions(newSize, false, 0)
        defer { UIGraphicsEndImageContext() }

        draw(in: CGRect(origin: .zero, size: newSize))
        return UIGraphicsGetImageFromCurrentImageContext()
    }
}

调整 UIImage 的大小。所以你可以用调整大小的UIImage 来初始化你的Image。代码看起来像...

Image(uiImage: UIImage(systemName: "plus.circle.fill")!.resized(to: CGSize(width: 40, height: 40)))

【讨论】:

    猜你喜欢
    • 2019-12-12
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2011-05-30
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    相关资源
    最近更新 更多