SwiftUI:自定义视图修饰符不符合 ViewModifier?

zum*_*zum 5 swiftui viewmodifier

我正在尝试创建这个修改器:

struct CustomTextBorder: ViewModifier {
    func body(content: Content) -> some View {
        return content
            .font(.largeTitle)
            .padding()
            .overlay(
                RoundedRectangle(cornerRadius: 15)
                    .stroke(lineWidth: 2)
            )
            .foregroundColor(.blue)
    }
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到Type 'CustomTextBorder' does not conform to protocol 'ViewModifier'错误。

看来我必须补充一下:

typealias Body = <#type#>

但是,我看到修改器的创建就像我最初在这里所做的那样,而无需提供typealias Body...

该修改器在这里起作用:

https://www.simpleswiftguide.com/how-to-make-custom-view-modifiers-in-swiftui/

为什么它对我不起作用?

我怎样才能让这个修改器起作用?为什么它对某些人有效而对其他人无效?这取决于项目的目标是什么吗?我的目标是 iOS 15。

use*_*ser 0

您的代码工作正常,但为什么使用 ViewModifier?你不需要 ViewModifier 来完成这个简单的事情,你可以通过这种方式使用扩展:

struct ContentView: View {
    
    var body: some View {

        Text("Hello, World!").customTextBorder
        
    }
    
}



extension Text {
    
    var customTextBorder: some View {
        
        return self
            .font(.largeTitle)
            .padding()
            .overlay(
                RoundedRectangle(cornerRadius: 15)
                    .stroke(lineWidth: 2)
            )
            .foregroundColor(.blue)
        
    }
    
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述