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

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

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

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Swift

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

SNS

SNS(ソーシャル・ネットワーキング・サービス)は、 人と人とのつながりを促進したり、サポートしたりすることが可能なコミュニティ型のWebサービスです。

Q&A

解決済

1回答

705閲覧

【Swift】TableView内でセルを2回タップした時の処理

ishiishiyay

総合スコア33

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Swift

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

SNS

SNS(ソーシャル・ネットワーキング・サービス)は、 人と人とのつながりを促進したり、サポートしたりすることが可能なコミュニティ型のWebサービスです。

0グッド

0クリップ

投稿2019/01/27 12:04

編集2019/01/27 12:06

お力添え頂けますと幸いです...

Table View内でセル(動画)を1度タップしたら動画が再生される機能を作りました。
(正確には、TableViewではなくCollection Viewで作っています)
動画再生中に、もう一度再生中のセルをタップしたら、動画を一時停止させ、3回目にタップしたら一時停止した箇所からもう一度再生されると言う処理を実現したいです。

通常のボタンであれば、以下のリンクにあるように書けばいいかと思いますが、
TableView内のセルであるため、2回目のタップを検知する方法が分からないです。
https://teratail.com/questions/93547

didSelectItemAtの中に追加で何かコードを書けば良いのか、それとも全く別のことをしないと
いけないのかご教示頂けますと幸いです。

Swift

1func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 2//この中で何か特別な処理をする? 3} 4

ちなみに以下のリンクで同じ内容の質問がありましたが、回答の意味がよくわかりませんでした。
https://stackoverflow.com/questions/12952826/ios-how-to-know-if-a-row-is-tapped-second-time-in-uitableview/12953306

◆リンク先の回答:
Maintain a mutable array and store row index whenever a row is first time selected in array and call first action. When row is selected second time or another row is get selected check if index of that row is present in array, if it is than call second action else add index of row to array and call first action.

以上お読みいただきありがとうございます。
お手数ですが、アドバイスもらえますと幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

変数を用いて、押されたのを判別すればいいと思います。
わかりやすいのはBool型, isPayingとかですかね。

Swift

1var isPlaying: Bool = flase

とグローバル変数を宣言し、

cellがタップされたら、isPlaying = trueとし、
custom classで再生・停止の関数を用意すればいいのではないでしょうか?

Swift

1func tableview( didselectetcell の関数) { 2 if self.isPlaying == true { 3 self.isPlaying = false 4 } else { 5 self.isPlaying = true 6 } 7 self.changePlayer(playing: self.isPlaying) 8} 9 10func changePlayer(playing: Bool) { 11 if playing == true { 12 // 再生する関数 13 } else { 14 // 停止する関数 15 } 16} 17

どうでしょう?

投稿2019/01/27 12:13

hameji001

総合スコア639

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

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

ishiishiyay

2019/01/27 12:59

hamejiさん、早速ありがとうございます。なるほど、天才ですね...!今から試してみます。
hameji001

2019/01/27 14:08

tableviewじゃなかったですね、間違えました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問