0

我的故事板中有一个空的 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 Symbols 中的 pointSize 起作用:1. 以编程方式完成所有操作,或者 2. 在 Storyboard / Inspector 中完成所有操作。

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

4

3 回答 3

4

我通过将对象的contentMode属性更改为.UIImageView.center

let imageView = UIImageView()

imageView.contentModel = .center // This is the key step.

imageView.preferredSymbolConfiguration = .init(pointSize: 10)
iconView.image = UIImage(systemName: "name")
于 2021-01-19T08:15:43.313 回答
1

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

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

于 2020-04-14T21:07:13.230 回答
0

试试这种方式:

let config = UIImage.SymbolConfiguration(pointSize: 50, weight: .light)
self.symbol.image = UIImage(systemName: "calendar", withConfiguration: config)
于 2021-08-27T13:50:59.357 回答