我注意到默认的、标准的、普通样式的按钮在按下时不会提供强烈的指示。例如,考虑这个带有默认设置的普通样式按钮。正如您所看到的,它没有提供清晰的视觉指示器来显示当前正在按下。
在检查操作系统提供的按钮(例如照片选择器)时,按下时的视觉效果更加明显。您能否建议我如何在 UIButton 中实现类似的效果?谢谢你。
您可以使用
setTitleColor
为每个状态简单地配置 style == default
。然而,对于 Plain
,这些配置不起作用。因此,您需要应用以下方法之一:
1。将样式更改为
Default
,然后它会自动按预期工作
2。使用 iOS 15 中新按钮的 UIConfiguration API
var config = button.configuration
config?.titleTextAttributesTransformer = config?.titleTextAttributesTransformer = UIConfigurationTextAttributesTransformer { [weak self] input in
var output = input
guard let button = self?.button else { return output }
switch button.state {
case .highlighted:
output.foregroundColor = .systemBlue.withAlphaComponent(0.2)
default:
output.foregroundColor = .systemBlue
}
return output
}
button.configuration = config