按下取消按钮时如何重设标记视图的位置?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按下取消按钮时如何重设标记视图的位置?相关的知识,希望对你有一定的参考价值。
我有一个markerView,您可以抓住它并四处移动。我在其中添加了panGesture。
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(self.handleDraggedView(_:))) fanMenu.addGestureRecognizer(panGesture)
要拖动视图并更新其位置:
@objc func handleDraggedView(_ sender: UIPanGestureRecognizer)
if let marker = documentationMarkers.first(where: $0.documentationId == documentationPressed.id)
if(fanMenu.isOpen && marker.documentationType == "DEFAULT")
self.viewForTilingView.bringSubview(toFront: marker)
let translation = sender.translation(in: self.viewForTilingView)
marker.center = CGPoint(x: marker.center.x + translation.x, y: marker.center.y + translation.y)
let point = viewForTilingView.convert(marker.center, to: scrollView)
fanMenu.center = CGPoint(x: point.x,
y: point.y)
sender.setTranslation(CGPoint.zero, in: self.viewForTilingView.superview)
print("Startpoint-X: \(point.x)", "Startpoint-Y: \(point.y)")
if(sender.state == .ended)
print("Endpoint-X: \(point.x)", "Endpoint-Y: \(point.y)")
if let documentation = documentations.first(where: $0.id == marker.documentationId)
let levelZoom : CGFloat = pow(2.0, CGFloat(viewForTilingView.tileProvider!.levelsOfDetail - 1))
let positionX = Int(marker.center.x * levelZoom)
let positionY = Int(marker.center.y * levelZoom)
_ = updatePosition(documentation: documentation, positionX: positionX, positionY: positionY)
documentationAdded(doc: documentation, update: true)
- 我的起点和终点都是正确的。当我长按我的标记时,它会打印正确的起点,而当我将其释放到其他位置时,它将给出正确的终点。
我在标记视图中添加了一些按钮。其中两个是cancel
func contextMenuButtonClicked(buttonId: String) let doc = documentationPressed switch buttonId case "main": break case "cancelButton": //update to the old position
我的问题是,当用户按下取消按钮时,如何获得标记视图的旧位置并将其放置到起始位置。
我有一个markerView,您可以抓住它并在其中移动。我添加了一个panGesture。让panGesture = UIPanGestureRecognizer(target:self,action:#selector(self.handleDraggedView(_ :)))...
答案
您可以通过在声像状态之间切换来存储标记位置。
以上是关于按下取消按钮时如何重设标记视图的位置?的主要内容,如果未能解决你的问题,请参考以下文章