Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftUI缩放图像的实际图像大小_Swift_Swiftui - Fatal编程技术网

SwiftUI缩放图像的实际图像大小

SwiftUI缩放图像的实际图像大小,swift,swiftui,Swift,Swiftui,我刚接触SwiftUI,正试图用它来测试一个想法。我确信我想做的很简单,但我错过了。我想得到实际图像的大小,随着比例的变化。我读到的所有东西都告诉我要使用GeometryReader。但是,这给了我它将显示的视图的大小。当比例改变时,它不会改变。 下面是我的代码,但它不能产生我所需要的。我的最终目标是让我知道图像的大小,我可以限制用户,这样他们就不能独立于比例将图像滑出视图 使用下面的代码行,我希望能够将图像定位在从左侧(0.0偏移量)到右侧(1.0 x?)的任意位置,而不受图像比例的影响 .p

我刚接触SwiftUI,正试图用它来测试一个想法。我确信我想做的很简单,但我错过了。我想得到实际图像的大小,随着比例的变化。我读到的所有东西都告诉我要使用GeometryReader。但是,这给了我它将显示的视图的大小。当比例改变时,它不会改变。 下面是我的代码,但它不能产生我所需要的。我的最终目标是让我知道图像的大小,我可以限制用户,这样他们就不能独立于比例将图像滑出视图

使用下面的代码行,我希望能够将图像定位在从左侧(0.0偏移量)到右侧(1.0 x?)的任意位置,而不受图像比例的影响

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