###前提・実現したいこと
画面端(下)からドラッグして自作viewの出し入れを行いたいと思っており、サンプルを作成しております。
しかし、ドラッグをすると別のviewが表示されてしまいます。
実現したいことは、画面下からドラッグを行い、自作viewを表示したいと思っております。
また、この別のviewの名前や検索ワードもご教授いただけたら幸いです。
表示したいviewは、画像中のピンクの部分になります。
何卒よろしくお願い致します。
###発生している問題・エラーメッセージ
ドラッグ後の画像になります。
ドラッグ前は、青色のみのviewが表示されております。
画面下(上)にUIScreenEdgePanGestureRecognizerを設定すると、
表示したいviewではなく別(デフォルト?)のviewが表示されてしまいます。
画面左(右)に設定した場合は、表示したいviewが表示されます。
###該当のソースコード
swift
1import UIKit 2 3class ViewController: UIViewController { 4 5 let containerWidth : Int = Int(UIScreen.main.bounds.width) 6 let containerHeight : Int = 100 7 8 let screenHeight : Int = Int(UIScreen.main.bounds.height) 9 10 @IBOutlet weak var container: UIView! 11 12 override func viewDidLoad() { 13 14 super.viewDidLoad() 15 16 // コンテナ初期化 17 container.frame = 18 CGRect( 19 x : 0, 20 y : screenHeight, 21 width : containerWidth, 22 height : containerHeight) 23 24 // ジェスチャ作成 25 let gesture : UIScreenEdgePanGestureRecognizer = 26 UIScreenEdgePanGestureRecognizer( 27 target : self, 28 action : #selector(ViewController.updated)) 29 30 /* 31 現在は左側 32 ゆくゆくは画面下から 33 */ 34 gesture.edges = .left 35 //gesture.edges = .bottom 36 37 // ジェスチャ適用 38 view.addGestureRecognizer(gesture) 39 } 40 41 42 func updated(sender : UIScreenEdgePanGestureRecognizer) { 43 44 // 移動量取得 45 let move : CGPoint = sender.translation(in : view) 46 47 // 移動予定の値 48 var nextValue = Int(container.frame.minY + move.y) 49 50 // 制限 51 let upLimit = screenHeight - containerHeight 52 if upLimit > nextValue { nextValue = upLimit } 53 54 let underLimit = screenHeight 55 if underLimit < nextValue { nextValue = underLimit } 56 57 // 位置更新 58 container.frame = 59 CGRect( 60 x : 0, 61 y : Int(nextValue), 62 width : containerWidth, 63 height : containerHeight) 64 65 // 更新? 66 self.view.layoutIfNeeded() 67 68 // リセット 69 sender.setTranslation( 70 CGPoint(x : 0, y : 0), 71 in : view) 72 } 73}
###試したこと
ネットで調べておりますが、別のviewの名前が分からず、これといったページが検索できておりません。
###補足情報(言語/FW/ツール等のバージョンなど)
xcode8.2.1
swift3.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/13 04:00
2017/07/13 04:32