SF符号imageView不符合pointSize



我的故事板中有一个空的UIImageView,并且在ViewController.swift文件中有出口。在viewDidLoad中,我调用以下代码:

let config = UIImage.SymbolConfiguration(pointSize: 50, weight: .light)
self.symbol.image = UIImage(systemName: "calendar")
self.symbol.preferredSymbolConfiguration = config

符号加载良好,甚至可以正确反映重量。

然而,即使我没有对UIImageView设置约束,符号图像的大小仍然与故事板中UIImageView的大小绑定。根据我所知,SymbolConfiguration中声明的pointSize对符号图像的大小没有影响。

据我所知,似乎有两种方法可以让SF符号中的pointSize发挥作用:1。以编程方式或2。在情节提要/检查器中执行所有操作。

有人知道我做错了什么吗?或者SF Symbols不支持Storyboard+代码配置吗?

我通过将UIImageView对象的contentMode属性更改为.center来解决问题。

let imageView = UIImageView()
imageView.contentModel = .center // This is the key step.
imageView.preferredSymbolConfiguration = .init(pointSize: 10)
iconView.image = UIImage(systemName: "name")

我想好了,你必须在设置配置后调用sizeToFit()。我猜苹果把它留给了开发人员来调用,这样他们就可以防止不必要的UI大小重新计算,从而潜在地提高效率。

无论如何,解决方案是:设置配置后在UIImageView上调用sizeToFit()

请尝试以下方式:

let config = UIImage.SymbolConfiguration(pointSize: 50, weight: .light)
self.symbol.image = UIImage(systemName: "calendar", withConfiguration: config)

相关内容

  • 没有找到相关文章

最新更新