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

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

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

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

1769閲覧

TableVIewにおいて、下方向のswipeイベントを検知するには。

Shinog

総合スコア99

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/08/01 02:24

編集2016/08/01 02:41

お世話になっております。

現在TableView(Controller)において、下方向のswipeイベントを検知して前の画面に遷移する機能を実装したいと考えています。

その際、以下のようにTableViewのスクロールをfalseにすることで、swipeイベントを検知するようにはなりましたが、TableViewは出来ればそのままスクロールできる状態で、かつTableViewのトップがViewControllerのトップに来た時のみswipeイベントを検知するという挙動を実現したいのですが、どうコードに落とし込めば良いか戸惑っています。

swift

1tableView.scrollEnabled = false

もし少しでも何かお分かりの方がいらっしゃいましたら、ぜひともご教示して頂きたく思います。
何卒よろしくお願い致します。

swift

1//TestTableViewController.swift 2import UIKit 3 4class TestTableViewController: UITableViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 9 tableView.scrollEnabled = false 10 11 //swipe down 12 let swipeDownGesture: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "handleSwipeDown:") 13 swipeDownGesture.numberOfTouchesRequired = 1 14 swipeDownGesture.direction = UISwipeGestureRecognizerDirection.Down 15 self.view.addGestureRecognizer(swipeDownGesture) 16 17 } 18 19 //下方向にスワイプした時の処理 20 func handleSwipeDown(sender: UITapGestureRecognizer){ 21 self.dismissViewControllerAnimated(true, completion: nil) 22 } 23 24//以下省略

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

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

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

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

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

guest

回答1

0

ベストアンサー

一つ目

swift

1tableView.bounces = false

にすれば多少マシになりますが、色々とダメでしょうかね‥。

二つ目

ジェスチャーの代わりにUIRefreshControllerを使ってみました。

swift

1override func viewDidLoad() { 2 : 3 let refresh = UIRefreshControl() 4 refresh.tintColor = UIColor.clearColor() //クルクルを見えなくする 5 refresh.addTarget(self, action: #selector(TableViewController.refreshValueChanged(_:)), forControlEvents: .ValueChanged) 6 self.refreshControl = refresh 7 : 8} 9 10func refreshValueChanged(sender: UIRefreshControl) { 11 sender.endRefreshing() //無くていいかも 12 self.dismissViewControllerAnimated(true, completion: nil) 13}

投稿2016/08/01 03:04

編集2016/08/01 06:50
fuzzball

総合スコア16731

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

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

Shinog

2016/08/01 12:16

fuzzballさん 丁寧にご回答いただき、本当にありがとうございます! 二つ目の方法で無事前の画面に遷移する機能を実装することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問