private func updateViewFromModel() {
for index in cardButtons.indices {
let button = cardButtons[index]
let card = game.cards[index]
if card.isFaceUp {
button.setTitle(emoji(for: card), for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 50)
button.backgroundColor = .lightGray
} else {
button.setTitle("", for: .normal)
button.backgroundColor = card.isMatched ? .clear : .systemIndigo
}
}
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这段代码有什么问题吗?IB 中的标题为空。我成功设置了标题。但字体大小没有改变。
Ome*_*yik 56
在 Xcode 13 中,UIButton 有四种类型Plain,Grain,Tinted,Filled
。当您在 Storyboard 中创建按钮时,按钮类型会自动设置为 Plain,这意味着新的 UIButton 配置已启用。如果您想要旧的行为,则必须将 style 设置plain
为default
。
或者,如果您想要以上款式之一。您需要设置字体,例如
button.configuration?.titleTextAttributesTransformer =
UIConfigurationTextAttributesTransformer { incoming in
var outgoing = incoming
outgoing.font = UIFont.systemFont(ofSize: 50)
return outgoing
}
Run Code Online (Sandbox Code Playgroud)
小智 7
以下@Omer Tekbiyik 回答请注意, 是titleTextAttributesTransformer
的参数UIButton.Configuration
,UIButton
因此可能的实现是:
var config = UIButton.Configuration.plain()
config.titleTextAttributesTransformer = UIConfigurationTextAttributesTransformer { incoming in
var outgoing = incoming
outgoing.font = UIFont(name: "AlmoniTzarAAA", size: 20) ?? .systemFont(ofSize: 20)
return outgoing
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12837 次 |
最近记录: |