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