SwiftUI - 类型 'some View' 的值没有成员'resizable'



我是新来的SwiftUI编码,并试图一步一步地学习。有时我不明白XCode试图用错误告诉我什么。下面是一个关于如何调整图像大小的超级简单教程。在此错误出现之前,一切正常:

类型为' someview '的值没有'resizable'成员

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

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()
}
}

你必须使用.resizable()之上。padding和下方的图像。原因是Image with padding is create a new child view,所以我们不能对view应用.resizable()。它仅用于图像。如果你不明白我的答案,请告诉我。

每个SwiftUI修饰符返回一个类型。View的最后一种类型body可能是非常复杂的,因此some View的存在——这基本上是告诉编译器你返回的是符合View协议的东西,但是你没有时间和精力来详细说明它是什么,反正这是你的工作,你是编译器,把它弄清楚就行了。

一些修饰符仅在应用于特定类型的视图时才有意义。在您的示例中,.padding可以添加到任何内容,因此它是View协议上的方法。它返回类型为ModifiedContent<SwiftUI.Image, SwiftUI._PaddingLayout>。这些类型构建了您应用的更多修饰符。

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

所以如果你调整大小,然后填充图像,你就可以了。如果你应用了填充,你就不再处理图像了,所以编译器无法知道发生了什么。

通过玩我的代码随机找到解决方案。问题是修饰语的顺序。

"可调整大小的(),

不要问我为什么,但是……它只是工作。希望这对其他人有帮助。

相关内容

  • 没有找到相关文章

最新更新