提问人:SimranChahal 提问时间:11/17/2023 最后编辑:SimranChahal 更新时间:11/22/2023 访问量:23
折线图上的多次触控,如苹果股票应用程序
MultipleTouches on a line chart like apple stocks app
问:
我正在使用 swift UI 构建图表视图。我使用路径来构建折线图。现在,我希望此路径允许使用不同的手指进行多次触摸,并允许用户查看这些数据点。此外,折线图的颜色应随着用户移动其 2 根手指而更改。
这种行为在苹果股票应用程序和TradingView应用程序上实施。
使用此软件包构建图表: https://github.com/Jonathan-Gander/LineChartView?ref=iosexample.com 尝试在 swiftUI 折线图上启用多点触控。我在互联网上找不到太多关于 swiftUI 多点触控可能性的信息。
我需要在我的应用程序中构建苹果股票类型的功能。TradingView也有类似的功能。
我尝试了以下在 SwiftUI 中实现多点触控:
- 同时手势。
- 堆栈中的 2 个视图,并在每个视图上添加点击手势。第一个视图根本没有收到手势单击:
struct ZStackTouchViews: View {
@GestureState private var dragLocation1 : CGPoint = .zero
@GestureState private var longPress1 : Bool = false
@GestureState private var dragLocation2 : CGPoint = .zero
@GestureState private var longPress2 : Bool = false
var body: some View {
ZStack {
Rectangle()
.fill(Color.blue)
.frame(width:300, height: 300)
.gesture(
LongPressGesture(minimumDuration: 1.0)
.updating($longPress1) { value, state, transaction in
state = value
}//: end of LongPressGesture
.simultaneously(with:DragGesture())
.updating($dragLocation1) { value, state, transaction in
state = value.second?.location ?? .zero
print("\n------------------")
print("state value on blue is: \(state)")
}//: end of DragGesture
)//: end of gesture
Rectangle()
.fill(Color.red)
.frame(width:300, height: 300)
.gesture(
LongPressGesture(minimumDuration: 1.0)
.updating($longPress2) { value, state, transaction in
state = value
}//: end of LongPressGesture
.simultaneously(with:DragGesture())
.updating($dragLocation1) { value, state, transaction in
state = value.second?.location ?? .zero
print("state value on red is: \(state)")
}//: end of DragGesture
)
}
}
}
答: 暂无答案
评论