【问题标题】:Drag has reversed direction阻力方向相反
【发布时间】:2020-05-19 03:48:35
【问题描述】:

我创建了一个游戏,其中涉及拖放瓷砖,这是在 MacOS 中创建的。然后我在 IOS 中重新构建了完全相同的应用程序,并且它按预期使用了 UIKit。我唯一的问题是,当我拖动瓷砖时,它们会朝相反的垂直方向移动。 所以我向上和向左拖动,瓷砖向下和向左移动......但是当我释放时,它知道我在哪里放下并且瓷砖出现在正确的位置。

import SwiftUI

 enum DragState {
case unknown
case good
case bad
}

struct Letter: View {
@State private var dragAmount = CGSize.zero
@State private var dragState = DragState.unknown

var text: String
var index: Int

var onChanged: ((CGPoint, String) -> DragState)?
var onEnded: ((CGPoint, Int, String) -> Void)?

var body: some View {
    Image(text)
        .frame(width: 67, height: 97)
        .offset(dragAmount)
        .zIndex(dragAmount == .zero ? 0 : 1)
        .shadow(color: dragColor, radius: dragAmount == .zero ? 0 : 10)
        .shadow(color: dragColor, radius: dragAmount == .zero ? 0 : 10)
        .gesture(
            DragGesture(coordinateSpace: .global)
                .onChanged {
                    self.dragAmount = CGSize(width: $0.translation.width, height: -$0.translation.height)
                    self.dragState = self.onChanged?($0.location, self.text) ?? .unknown
                }
                .onEnded {
                    if self.dragState == .good {
                        self.onEnded?($0.location, self.index, self.text)
                    }

                    self.dragAmount = .zero
                }

        )


}

var dragColor: Color {
    switch dragState {
    case .unknown:
        return .black
    case .good:
        return .green
    case .bad:
        return .red
    }
}

}

所以只是在拖动时,图块在视觉上是不正确的。 这可能是因为从 Cocoa 更改为 UIKit,因此我可以更改一些东西来解决这个问题吗?

提前致谢

【问题讨论】:

    标签: ios xcode cocoa uikit swiftui


    【解决方案1】:

    找到了,就是一行代码

    self.dragAmount = CGSize(width: $0.translation.width, height: -$0.translation.height)
    

    需要改成

    self.dragAmount = CGSize(width: $0.translation.width, height: $0.translation.height)
    

    有时它会盯着你的脸

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      相关资源
      最近更新 更多