SwiftUI缩放图像的实际图像大小
我刚接触SwiftUI,正试图用它来测试一个想法。我确信我想做的很简单,但我错过了。我想得到实际图像的大小,随着比例的变化。我读到的所有东西都告诉我要使用GeometryReader。但是,这给了我它将显示的视图的大小。当比例改变时,它不会改变。 下面是我的代码,但它不能产生我所需要的。我的最终目标是让我知道图像的大小,我可以限制用户,这样他们就不能独立于比例将图像滑出视图 使用下面的代码行,我希望能够将图像定位在从左侧(0.0偏移量)到右侧(1.0 x?)的任意位置,而不受图像比例的影响SwiftUI缩放图像的实际图像大小,swift,swiftui,Swift,Swiftui,我刚接触SwiftUI,正试图用它来测试一个想法。我确信我想做的很简单,但我错过了。我想得到实际图像的大小,随着比例的变化。我读到的所有东西都告诉我要使用GeometryReader。但是,这给了我它将显示的视图的大小。当比例改变时,它不会改变。 下面是我的代码,但它不能产生我所需要的。我的最终目标是让我知道图像的大小,我可以限制用户,这样他们就不能独立于比例将图像滑出视图 使用下面的代码行,我希望能够将图像定位在从左侧(0.0偏移量)到右侧(1.0 x?)的任意位置,而不受图像比例的影响 .p
.position(x:self.sharedImageOffset*geometry.size.width,y:200)
谢谢你的帮助
import SwiftUI
struct ContentView: View {
@State var sharedImageScale: CGFloat = 1.0
@State var sharedImageOffset: CGFloat = 0.0
var body: some View {
VStack{
GeometryReader { geometry in
Image("IMG_1650")
.resizable()
.aspectRatio(contentMode: .fill)
.scaleEffect(self.sharedImageScale)
.position(x: self.sharedImageOffset * geometry.size.width, y: 0 )
.background(Color.blue)
.gesture(
TapGesture()
.onEnded { _ in
print("SIZE \(geometry.size)")
}
)
}.border(Color.green, width: 2)
.clipped()
HStack{
Text("Scale")
Slider(value: self.$sharedImageScale, in: 0.5...10 ).frame(minWidth: 10, idealWidth: 100, maxWidth: 200)
Text("Offset")
Slider(value: self.$sharedImageOffset, in: -1.0...1 ).frame(minWidth: 10, idealWidth: 100, maxWidth: 200)
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}