我正在尝试创建一个小方块视图的网格,当用户用拇指悬停在它们上面(或在它们上滑动)时,小方块会暂时“弹出”并摇晃。然后,如果他们继续长按该视图,则会打开另一个包含更多信息的视图。
我认为在方形视图上实现拖动手势就足够了,但看起来一次只有一个视图可以捕获拖动手势。
有没有办法启用多个视图来捕获拖动手势,或者一种为 iOS 实现“悬停”手势的方法?
这是我的主要网格视图:
import SwiftUI
struct ContentView: View {
@EnvironmentObject var data: PlayerData
var body: some View {
VStack {
HStack {
PlayerView(player: self.data.players[0])
PlayerView(player: self.data.players[1])
PlayerView(player: self.data.players[2])
}
HStack {
PlayerView(player: self.data.players[3])
PlayerView(player: self.data.players[4])
PlayerView(player: self.data.players[5])
}
HStack {
PlayerView(player: self.data.players[6])
PlayerView(player: self.data.players[7])
PlayerView(player: self.data.players[8])
}
HStack {
PlayerView(player: self.data.players[9])
PlayerView(player: self.data.players[10])
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的 Square 视图,它将包含一个小摘要以显示在 Square 上:
import SwiftUI
struct PlayerView: View {
@State var scaleFactor: CGFloat = 1.0
var player: Player …Run Code Online (Sandbox Code Playgroud) 在 UIKit 中,这可以用这样的代码来完成:
if button.frame.contains(sender.location(in: rightStackView)) { ... }
Run Code Online (Sandbox Code Playgroud)
但是在 SwiftUI 中,我似乎找不到与 类似的任何内容frame.contains,那么我怎样才能找出拖动是在特定按钮或其他视图内的时间呢?