可拖动的UIView Swift 3 [英] Draggable UIView Swift 3
问题描述
我希望能够在屏幕上拖动对象,但他们不会。我尝试了一切但仍然不能。
I want to be able to drag the objects on the screen, but they wont. I tried everything but still cant.
以下是代码。
func panGesture(gesture: UIPanGestureRecognizer) {
switch gesture.state {
case .began:
print("Began.")
for i in 0..<forms.count {
if forms[i].frame.contains(gesture.location(in: view)) {
gravity.removeItem(forms[i])
}
}
case .changed:
let translation = gesture.translation(in: forms[1])
gesture.view!.center = CGPoint(x: gesture.view!.center.x + translation.x, y: gesture.view!.center.y + translation.y)
gesture.setTranslation(CGPoint.zero, in: self.view)
print("\(gesture.view!.center.x)=\(gesture.view!.center.y)")
print("t;: \(translation)")
case .ended:
for i in 0..<forms.count {
if forms[i].frame.contains(gesture.location(in: view)) {
gravity.addItem(forms[i])
}
}
print("Ended.")
case .cancelled:
print("Cancelled")
default:
print("Default")
}
}
他们也有引力。表格是正方形和圆形。
Also they have gravity. The forms are squares and circles.
说明:
in .began - 我禁用所选表格的重力。
in .changed - 我尝试更改坐标。 .bnd中的
- 我再次启用重力。
Explanation: in .began - i disable the gravity for selected form. in .changed - i try to change the coordinates. in .end - i enable again gravity.
ScreenShot。
ScreenShot.
推荐答案
第1步:在StoryBoard中选择一个要拖动的视图。
Step 1 : Take one View which you want to drag in storyBoard.
@IBOutlet weak var viewDrag: UIView!
第2步:添加PanGesture。
Step 2 : Add PanGesture.
var panGesture = UIPanGestureRecognizer()
第3步:在ViewDidLoad中添加以下代码。
Step 3 : In ViewDidLoad adding the below code.
override func viewDidLoad() {
super.viewDidLoad()
panGesture = UIPanGestureRecognizer(target: self, action: #selector(ViewController.draggedView(_:)))
viewDrag.isUserInteractionEnabled = true
viewDrag.addGestureRecognizer(panGesture)
}
第4步: draggedView的代码。
Step 4 : Code for draggedView.
func draggedView(_ sender:UIPanGestureRecognizer){
self.view.bringSubview(toFront: viewDrag)
let translation = sender.translation(in: self.view)
viewDrag.center = CGPoint(x: viewDrag.center.x + translation.x, y: viewDrag.center.y + translation.y)
sender.setTranslation(CGPoint.zero, in: self.view)
}
第5步:输出。
这篇关于可拖动的UIView Swift 3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!