给出以下代码:
struct CopyButtonStyle: ButtonStyle {
init() {}
func makeBody(configuration: Configuration) -> some View {
let copyIconSize: CGFloat = 24
return Image(systemName: "doc.on.doc")
.renderingMode(.template)
.resizable()
.frame(width: copyIconSize, height: copyIconSize)
.accessibilityIdentifier("copy_button")
.opacity(configuration.isPressed ? 0.5 : 1)
}
}
我收到以下错误:
“accessibilityIdentifier”仅在 iOS 14.0 或更高版本中可用
在 iOS 14 上
当看着accessibilityIdentifier
声明,我发现了这个:
public func accessibilityIdentifier(_ identifier: String) -> ModifiedContent<Self, AccessibilityAttachmentModifier>
Xcode 建议包含整个按钮样式结构或至少包含makeBody
函数以使其在 iOS 14+ 上可用。
有没有办法创建附加功能,例如:
func addAccessibilityIdentifierIfAvailable(entryParam ??) -> some View
或类似的,如果accessibilityIdentifier
不可用,或者如果可以在该操作系统版本上设置,则返回带有设置标识符的视图。
这里为您提供一个简单的方法:
extension View {
@ViewBuilder func addAccessibilityIdentifierIfVersionAvailable(identifier: String) -> some View {
if #available(iOS 14.0, *) { self.accessibilityIdentifier(identifier) }
else { self }
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)