當我嘗試本地化 UIButtons 時字體會發生變化。本地化本身有效;我可以看到語言在變化,但字體也在變化我嘗試使用基本國際化、本地化字串和不同的 pod 進行本地化,但字體仍然在變化。我使用界面構建器創建了 UIButtons,并在界面構建器中設定了字體,還嘗試以編程方式創建 UIButton,但字體仍然會發生變化。它只針對 UIButtons 改變,我對 UILabels 或 UIExfields 沒有這個問題。
這是 UIButton 在本地化之前的樣子:
按鈕1
這是本地化后 UIButton 的樣子:
按鈕1
這是我用來設定按鈕并以編程方式對其進行本地化的代碼:
@IBOutlet weak var button1: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
button1.titleLabel?.font = UIFont(name: "Helvetica Bold", size: 20)
button1.setAttributedTitle(NSAttributedString(string: NSLocalizedString("button1", comment: "")), for: .normal)
}
對于使用界面構建器進行本地化,我使用了一個 pod,您可以在其中為 UI 元素提供本地化鍵,但出現了同樣的問題。
uj5u.com熱心網友回復:
UIButton可以通過兩種主要方式配置物件:
- 傳統上,通過直接在按鈕及其標簽上設定屬性(如您在上面的代碼中所做的那樣),或者
- 從 iOS 15 開始,通過
UIButton.configuration一次設定多個屬性
盡管這似乎并沒有過于清楚地記錄下來,但是當您configuration在按鈕上設定 a 時,這些屬性會覆寫您可能分配給按鈕屬性的任何內容。對于為 iOS 15 創建的 iOS 專案,在故事板中創建的按鈕默認設定為在屬性檢查器中設定按鈕配置:提供的普通、填充、灰色和有色“樣式”選項對應于靜態plain()、、、,以及由 提供的默認按鈕配置。filled()gray()tinted()UIButton.Configuration
在情節提要中設定其中一種樣式時UIButton,您嘗試在代碼中設定的屬性將被其配置覆寫。您有兩個主要選擇:
- 在故事板中將按鈕樣式設定為默認,這樣可以避免對按鈕應用配置,并允許您使用傳統屬性來設定按鈕樣式,或者
- 改為使用其配置設定按鈕樣式
對于面向低于 iOS 15 的 iOS 版本的應用程式,(1) 是唯一的選項(無論如何應該是故事板中的默認選項);但如果您選擇使用 (2),則配置等效項可能類似于:
var attributes = AttributeContainer()
attributes.font = UIFont(name: "Helvetica Bold", size: 20)
let title = AttributedString(NSLocalizedString("button1", comment: ""), attributes: attributes)
button1.configuration.attributedTitle = title
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/471652.html
