Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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 ScrollView限制Dragesture动画_Swiftui_Scrollview_Draggesture - Fatal编程技术网

Swiftui ScrollView限制Dragesture动画

Swiftui ScrollView限制Dragesture动画,swiftui,scrollview,draggesture,Swiftui,Scrollview,Draggesture,我有一些通过ForEach视图显示的图像。每个图像都应用了DragGesture。我可以在屏幕上拖动一幅图像,动画也可以正确显示。但是,当我拖动图像(而不是滚动)时,将带有图像的HStack放入ScrollView时,抓取动画仅显示在ScrollView区域内。如何使其再次显示在整个屏幕中? 导入快捷界面 结构快捷视图:视图{ @状态变量位置=CGSize.zero @GestureState变量dragOffset:[CGSize] init(){ 让dragOffsets=[CGSize]

我有一些通过ForEach视图显示的图像。每个图像都应用了DragGesture。我可以在屏幕上拖动一幅图像,动画也可以正确显示。但是,当我拖动图像(而不是滚动)时,将带有图像的HStack放入ScrollView时,抓取动画仅显示在ScrollView区域内。如何使其再次显示在整个屏幕中?

导入快捷界面
结构快捷视图:视图{
@状态变量位置=CGSize.zero
@GestureState变量dragOffset:[CGSize]
init(){
让dragOffsets=[CGSize](重复:CGSize.zero,计数:36)
_dragOffset=GestureState(wrappedValue:dragOffset)
}
var body:一些观点{
滚动视图(.horizontal){
hs定位(对齐:。中心,间距:0){
ForEach((0。。
import SwiftUI

struct SwiftUIView: View {
    
    @State var position = CGSize.zero
    @GestureState var dragOffset: [CGSize]

        init() {
            let  dragOffsets = [CGSize](repeating: CGSize.zero, count: 36)
            _dragOffset = GestureState(wrappedValue: dragOffsets)
        }
    
    var body: some View {
        ScrollView(.horizontal) {
            HStack(alignment: .center, spacing: 0) {
                ForEach ((0..<player.playersCards.count), id: \.self) { number in
                    Image(player.playersCards[number].pic)
                        .resizable()
                        .frame(width: 93, height: 127)
                        .modifier(CardStyle())
                        .offset(dragOffset[number])

                    .gesture(
                        DragGesture(coordinateSpace: .global)
                            .updating($dragOffset, body: { (value, state, transaction) in

                                state[number] = value.translation

                            })
                    )
                    .animation(.spring())
                }
            }
        }.offset(x: 15, y: 0)
    }
}