我是新来的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
。
所以如果你调整大小,然后填充图像,你就可以了。如果你应用了填充,你就不再处理图像了,所以编译器无法知道发生了什么。
通过玩我的代码随机找到解决方案。问题是修饰语的顺序。
"可调整大小的(),
不要问我为什么,但是……它只是工作。希望这对其他人有帮助。