如何在Swift中连接两个可拖动视图



我想创建一个像益智游戏的游戏。屏幕上有几个可拖动的对象,用户能够将它们连接在一起。当用户互相拖动两个对象以及用户释放手指时,我可以使用什么方法,两个对象将连接到一起。以下是我用来制作两个标签并使其可拖动的代码(我知道它非常愚蠢,可以为每个标签造就一个功能,但现在我只想知道两个对象的组合如何工作)

override func viewDidLoad() {
        super.viewDidLoad()
    let label = UILabel(frame: CGRectMake(UIScreen.mainScreen().bounds.width / 2 - 100, UIScreen.mainScreen().bounds.height / 2 - 100, 100, 50))
    let label2 = UILabel(frame: CGRectMake(UIScreen.mainScreen().bounds.width / 2 - 100, UIScreen.mainScreen().bounds.height / 2 - 200, 100, 50))
    label.text = "Str"
    label.textAlignment = NSTextAlignment.Center
    label.backgroundColor = UIColor.greenColor()
    self.view.addSubview(label)
    label2.text = "ing"
    label2.textAlignment = NSTextAlignment.Center
    label2.backgroundColor = UIColor.greenColor()
    self.view.addSubview(label2)

     let gesture = UIPanGestureRecognizer(target: self, action: Selector("wasDragged:"))
    label.addGestureRecognizer(gesture)
    label.userInteractionEnabled = true
    let gesture2 = UIPanGestureRecognizer(target: self, action: Selector("wasDragged1:"))
    label2.addGestureRecognizer(gesture2)
    label2.userInteractionEnabled = true

}
func wasDragged(gesture: UIPanGestureRecognizer) {
     let translation = gesture.translationInView(self.view)
    if let label = gesture.view {
    label.center = CGPoint(x: label.center.x + translation.x, y: label.center.y + translation.y)
    }
    gesture.setTranslation(CGPointZero, inView: self.view)

}
func wasDragged1(gesture:UIPanGestureRecognizer) {
    let translation = gesture.translationInView(self.view)
    if let label = gesture.view {
        label.center = CGPoint(x: label.center.x + translation.x, y: label.center.y + translation.y)
    }
    gesture.setTranslation(CGPointZero, inView: self.view)

}

感谢任何帮助的人。

您不能"连接"两个视图 - 它忽略了视图和查看层次结构的工作方式。

  • ,但是您可以使其"似乎连接"。不过,它会很快变得复杂。在您的简单示例中,一种方法是在拼图板上拥有三个子视图:两个可见(" str"one_answers" ing"),一个无形(" string")。连接后,隐藏" str"one_answers" ing"并显示"字符串"子视图。也许显示一些飞溅的动画,看起来确实像在连接。

  • 另一个想法(取决于难题的类型)是使它成为旧游戏的变体。在那里,最后的拼图板隐藏在各种编号的正方形后面。在您的游戏中,您可能有"零件"具有特定的位置,需要将它们移至(成对?),当用户对其进行操作时 - 再次使它看起来可以连接,也许会有一些动画。<<<<<<<<<<<<<<<<<</p>

如果我在这里不在基地 - 有人确实可以将两个Uiviews连接到一个 - 我很乐意删除我的答案(并投票给答案)。

最新更新