1

我正在构建一个类似于 tinder 的简单应用程序作为测试。它允许用户将照片(图像视图)拖动到左侧或右侧,然后将加载新的。但是,当图像视图在点击左侧或右侧之前松开时,它会被发送到中间屏幕而不是其原始起始位置。我想我需要以某种方式存储图像视图的原始起始位置并稍后调用它,但我不确定该怎么做

这是我的相关代码:

class SwipingViewController: UIViewController {

    @IBOutlet var userImage: UIImageView!
    @IBOutlet var infoLabel: UILabel!

    var displayedUserId = ""


    //set image position


    func wasDragged(gesture: UIPanGestureRecognizer) {

        let translation = gesture.translationInView(self.view)
        let imageDrag = gesture.view!

        imageDrag.center = CGPoint(x: self.view.bounds.width / 2 + translation.x, y: self.view.bounds.height / 2 + translation.y)

        let xFromCenter = imageDrag.center.x - self.view.bounds.width / 2

        let scale = min(100 / abs(xFromCenter), 1)


        var rotation = CGAffineTransformMakeRotation(xFromCenter / 200)

        var stretch = CGAffineTransformScale(rotation, scale, scale)

        imageDrag.transform = stretch



        if gesture.state == UIGestureRecognizerState.Ended {

            var acceptedOrRejected = ""

            if imageDrag.center.x < 100 {

                acceptedOrRejected = "rejected"
                print("not chosen" + displayedUserId)

            } else if imageDrag.center.x > self.view.bounds.width - 100 {

                acceptedOrRejected = "accepted"
                print("Chosen")
            }

            if acceptedOrRejected != "" {

                PFUser.currentUser()?.addUniqueObjectsFromArray([displayedUserId], forKey: acceptedOrRejected)

                PFUser.currentUser()?.saveInBackgroundWithBlock({

                    (succeeded: Bool, error: NSError?) -> Void in

                    if succeeded {

                    } else {

                        print(error)

                    }

                })



            }

            //Resets image position after it has been let go of


            rotation = CGAffineTransformMakeRotation(0)


            stretch = CGAffineTransformScale(rotation, 1, 1)

            imageDrag.transform = stretch

            imageDrag.center = CGPoint(x: self.view.bounds.width / 2, y: self.view.bounds.height / 2)

            updateImage()
        }
    }

以下是问题的截图:

图像起始位置

在此处输入图像描述

图像结束位置

在此处输入图像描述

在此先感谢您的帮助,我对 swift 还是很陌生

4

0 回答 0