如何使用SwiftUI中的扩展向文本视图添加辅助功能修改器
我不知道。这是我写的。我知道这是徒劳的尝试如何使用SwiftUI中的扩展向文本视图添加辅助功能修改器,swiftui,Swiftui,我不知道。这是我写的。我知道这是徒劳的尝试 struct HelloWorld: View { var body: some View { Text("Hello, World!") } } extension Text { self.accessibility(hidden: true) } 但是我得到了这个错误 更新: 是的,我想我可以在扩展中添加一个函数或实现一个结构。但我只希望文本视图自动继承可访问性修改器 所以我可以这样使用它: var body: some
struct HelloWorld: View {
var body: some View {
Text("Hello, World!")
}
}
extension Text {
self.accessibility(hidden: true)
}
但是我得到了这个错误
更新:
是的,我想我可以在扩展中添加一个函数或实现一个结构。但我只希望文本视图自动继承可访问性修改器
所以我可以这样使用它:
var body: some View {
Text("Hello, World!")
}
这是@Asperi的结构实现
//thanks for your answer Asperi, but
let sayHi = "hi"
var body: some View {
List {
Section(header: HidingAccessibility {Text(self.sayHi)}) {
Text("Hello, World!")
}
}
}
}
struct HidingAccessibility<Content: View>: View {
private var content: () -> Content
init(@ViewBuilder _ content: @escaping () -> Content ) {
self.content = content
}
var body: some View {
content().accessibility(hidden: true)
}
}
//谢谢你的回答Asperi,但是
让我们说“嗨”
var body:一些观点{
名单{
节(标题:隐藏可访问性{Text(self.sayHi)}){
文本(“你好,世界!”)
}
}
}
}
结构隐藏可访问性:视图{
私有变量内容:()->内容
init(@ViewBuilder\ucontent:@escaping()->content){
self.content=内容
}
var body:一些观点{
content().可访问性(隐藏:true)
}
}
在这里
struct HelloWorld: View {
var body: some View {
Text("Hello, World!")
.hideAccessibility() // << here !
}
}
extension Text {
public func hideAccessibility() -> some View { // << here !
self.accessibility(hidden: true)
}
}
struct HelloWorld:View{
var body:一些观点{
文本(“你好,世界!”)
.hideAccessibility()//某些视图{//内容
init(@ViewBuilder\ucontent:@escaping()->content){
self.content=内容
}
var body:一些观点{
content().可访问性(隐藏:true)
}
}
结构HelloWorld:视图{
var body:一些观点{
隐藏可访问性{
文本(“你好,世界!”)//我希望文本视图继承修饰符。请查看我的更新。您可以使用第一种变体的答案作为标题:
,第二种变体用于您希望禁用整个列表的可访问性时。是的,我会到处都有self,但我听说Swift正在摆脱self在下一次更新中。
struct HidingAccessibility<Content: View>: View {
private var content: () -> Content
init(@ViewBuilder _ content: @escaping () -> Content ) {
self.content = content
}
var body: some View {
content().accessibility(hidden: true)
}
}
struct HelloWorld: View {
var body: some View {
HidingAccessibility {
Text("Hello, World!") // << usual SwiftUI view building here
}
}
}