问题描述
我正在尝试在 SwiftUI 中调整 SF 符号按钮的大小。我试过 .font(.system(size: 60))
和 .imageScale(.medium)
但它不起作用。它仍然有同样的错误。这是我的代码:
var buttons: [Button<Image>] = [
Button(action: {
print("Add tapped")
}) {
Image(systemName: "plus.circle.fill")
}
]
解决方法
接受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<Image>]
???
如果一切都失败了,可以选择使用 UIImage
调整 SFSymbols
的大小。如果你不介意让程序更长一点,我建议你使用,
extension UIImage {
func resized(to newSize: CGSize) -> UIImage? {
UIGraphicsBeginImageContextWithOptions(newSize,false,0)
defer { UIGraphicsEndImageContext() }
draw(in: CGRect(origin: .zero,size: newSize))
return UIGraphicsGetImageFromCurrentImageContext()
}
}
调整 UIImage 的大小。因此,您可以使用调整大小的 Image
来初始化您的 UIImage
。代码看起来像...
Image(uiImage: UIImage(systemName: "plus.circle.fill")!.resized(to: CGSize(width: 40,height: 40)))