簡體   English   中英

Swift 編譯器錯誤:“類型‘水印’不符合協議‘ViewModifier’”

[英]Swift Compiler Error: "Type 'Watermark' does not conform to protocol 'ViewModifier'"

我想添加一個 ViewModifier,如 Paul Hudson 在以下教程中所述( https://www.hackingwithswift.com/books/ios-swiftui/custom-modifiers )。 我的 ViewModifier 是:

import SwiftUI

struct Watermark: ViewModifier {
    var text: String

    func body(content: Content) -> some View {
        ZStack(alignment: .bottomTrailing) {
            content
            Text(text)
                .font(.caption)
                .foregroundColor(.white)
                .padding(5)
                .background(Color.black)
        }
    }
}

extension View {
    func watermarked(with text: String) -> some View {
        self.modifier(Watermark(text: text))
    }
}

但我收到以下錯誤:

在此處輸入圖片說明

我試圖在另一個項目中重現它,但它按預期工作。 我已經嘗試清理構建文件夾,刪除派生數據,重新啟動 Xcode,重新啟動 Mac。

關於如何解決問題的任何想法?

我認為您有名稱沖突,即。 您的項目中有另一個名為Watermark實體(或從其他部分可見),因此請嘗試使該修改器獨一無二。 喜歡

struct WatermarkModifier: ViewModifier {
 // .. other code
}

extension View {
    func watermarked(with text: String) -> some View {
        self.modifier(WatermarkModifier(text: text))
    }
}  

我之前遇到過這個錯誤,正如@Asperi所說,它是命名沖突問題。 項目中可能還有另一個名為Content實體。

和圖片供參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM