質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

192閲覧

swiftでtinderUIを実現させたいがカードが動かない

harago

総合スコア11

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/07/04 16:56

編集2019/07/07 09:35

#tinderUIを実現させたいがカードが動かない

#現状
tinderUIを実現させたくswiftでコードを書いているのですが、xcodeのdebugモードで確認するとカードが動きません。
初心者で右往左往しておりますがご教示いただけますと幸いです。

#コード

// // ViewController.swift // Piluser // // Created by jiraffe40035 on 2019/06/24. // Copyright © 2019 jiraffe40035. All rights reserved. // import UIKit class ViewController: UIViewController { @IBOutlet weak var basicCard: UIView! @IBOutlet weak var likeImageView: UIImageView! @IBOutlet weak var person1: UIView! @IBOutlet weak var person2: UIView! @IBOutlet weak var person3: UIView! @IBOutlet weak var person4: UIView! var centerOfCard: CGPoint! var people = [UIView]() var selectedCardCount: Int = 0 override func viewDidLoad() { super.viewDidLoad() centerOfCard = basicCard.center people.append(person1) people.append(person2) people.append(person3) people.append(person4) } @IBAction func swipeCard(_ sender: UIPanGestureRecognizer) { let card = sender.view! //ドラックアンドドロップした時にやりたいことを書いていく let point = sender.translation(in: view) card.center = CGPoint(x: card.center.x + point.x, y: card.center.y + point.y) people[selectedCardCount].center = CGPoint(x: card.center.x + point.x, y: card.center.y + point.y) //角度を変える let xFromCenter = card.center.x - view.center.x card.transform = CGAffineTransform(rotationAngle: xFromCenter / (view.frame.width / 2) * -0.785) people[selectedCardCount].transform = CGAffineTransform(rotationAngle: xFromCenter / (view.frame.width / 2) * -0.785) if xFromCenter > 0 { //likeImageView.image = good likeImageView.alpha = 1 likeImageView.tintColor = UIColor.red } else if xFromCenter < 0 { // likeImageView.image = bad likeImageView.alpha = 1 likeImageView.tintColor = UIColor.blue } if sender.state == UIGestureRecognizer.State.ended { //左に大きくスワイプ if card.center.x < 75 { UIView.animate(withDuration: 0.2, animations: { card.center = CGPoint (x: card.center.x - 250, y: card.center.y ) }) return //右に大きくスワイプ } else if card.center.x > self.view.frame.width - 75 { UIView.animate(withDuration: 0.2, animations: { card.center = CGPoint (x: card.center.x + 250, y:card.center.y ) }) return } //元に戻る処理 UIView.animate(withDuration: 0.2, animations: { card.center = self.centerOfCard card.transform = .identity }) likeImageView.alpha = 0 } } }```

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2019/07/05 00:45

コードを見やすくしてください。
harago

2019/07/05 00:55

すみません。 改行などを行い見やすくしました。
takabosoft

2019/07/05 02:34

そういう意味ではありません。 ```swift ここにコード ``` のように書いてください。
harago

2019/07/07 09:35

ご教示いただいた通りにしました。 決して見やすくはなって無いような気がしておりますが。。。
takabosoft

2019/07/08 02:22

もうちょっと試行錯誤してください。
guest

回答1

0

こんにちは。

@IBAction func swipeCard(_ sender: UIPanGestureRecognizer)

が呼ばれない、という意味であれば、
UIImageViewのuserInteractionEnabledをYESにしてみてください。

Storyboardであれば
InteractionのUser Interaction Enabled」にチェックです。

投稿2019/07/05 02:40

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

harago

2019/07/07 09:33

ご回答ありがとうございます。 すみません。 本当に初心者で、どこをどうすれば全くわからなくなってしまっております。 とりあえず、「UIImageViewのuserInteractionEnabled」の表記はコード上に表記はないです。 Storyboardとはどこを触ればよいでしょうか? ご教示いただけますと幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問