[英]SF Symbol imageView does not conform to pointSize?
我的 storyboard 中有一個空的 UIImageView,並在我的 ViewController.swift 文件中有插座。 在 viewDidLoad 中,我調用了以下代碼:
let config = UIImage.SymbolConfiguration(pointSize: 50, weight: .light)
self.symbol.image = UIImage(systemName: "calendar")
self.symbol.preferredSymbolConfiguration = config
符號加載良好,甚至重量也正確反映。
但是,符號圖像的大小仍然與 storyboard 中的 UIImageView 的大小相關,即使我沒有對 UIImageView 設置任何限制。 據我所知,在 SymbolConfiguration 中聲明的 pointSize 對符號圖像的大小沒有影響。
據我所知,似乎有兩種方法可以讓 SF Symbols 中的 pointSize 起作用:1. 以編程方式完成所有操作或 2. 在 Storyboard / Inspector 中完成所有操作。
有誰知道我做錯了什么或者 SF Symbols 不支持 Storyboard + 代碼配置?
我想通了,你必須在設置配置后調用sizeToFit()
。 我猜蘋果把它留給了開發人員來調用它,這樣他們就可以防止不必要地重新計算 UI 大小,從而有可能提高效率。
無論如何,解決方案是:設置配置后在 UIImageView 上調用sizeToFit()
。
我通過將UIImageView
object 的contentMode
屬性更改為.center
解決了這個問題。
let imageView = UIImageView()
imageView.contentModel = .center // This is the key step.
imageView.preferredSymbolConfiguration = .init(pointSize: 10)
iconView.image = UIImage(systemName: "name")
試試這種方式:
let config = UIImage.SymbolConfiguration(pointSize: 50, weight: .light)
self.symbol.image = UIImage(systemName: "calendar", withConfiguration: config)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.