SwiftUI - “某些视图”类型的值没有成员“可调整大小”

Meh*_*loo 5 resizable ios swiftui xcode14

我是 SwiftUI 编码新手,正在尝试逐步学习。有时我不明白 XCode 试图通过它的错误告诉我什么。遵循有关如何调整图像大小的超级简单教程。一切正常,直到出现此错误:

“某些视图”类型的值没有成员“可调整大小”

我正在尝试调整资产文件夹中的图像大小。这是我的代码:

import SwiftUI

struct ContentView: View {

...
...

 var body: some View {

...

 Image("home_illustration")
                        .padding(.bottom,60)
                        .resizable()
...

 }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Run Code Online (Sandbox Code Playgroud)

jrt*_*ton 3

每个 SwiftUI 修饰符都会返回一个类型。a 的最终类型View可能body非常复杂,因此some View- 的存在基本上告诉编译器您正在返回符合View协议的内容,但您没有时间或精力来准确拼写它是什么,无论如何这是你的工作,你是一个编译器,只要弄清楚它就可以了。

某些修饰符仅在应用于某些类型的视图时才有意义。就您而言,.padding可以添加到任何内容,因此它是View协议上的一种方法。它返回一个类型ModifiedContent<SwiftUI.Image, SwiftUI._PaddingLayout>。这些类型会累积您应用的修饰符越多。

.resizable()是 上的一个方法Image,它返回一个Image.

因此,如果您调整大小,然后填充图像,就可以了。如果应用填充,则不再处理图像,因此编译器无法弄清楚发生了什么。