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

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

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

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

Q&A

解決済

1回答

2151閲覧

画面端(下)からドラッグして自作viewを出したいが、別(デフォルト?)のviewが出てしまう

_utah

総合スコア20

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

0グッド

0クリップ

投稿2017/07/13 03:26

###前提・実現したいこと
画面端(下)からドラッグして自作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

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

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

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

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

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

guest

回答1

0

ベストアンサー

「別(デフォルト?)のview」というのはコントロールセンターのことでしょうかね。
設定でOFFにして下さい。

設定-コントロールセンター-App内でのアクセス

投稿2017/07/13 03:57

fuzzball

総合スコア16731

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

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

fuzzball

2017/07/13 04:00

システム(OS)と競合するような操作は避けた方が良いかと思います。
_utah

2017/07/13 04:32

おっしゃられた通り、コントロールセンターのことでした。 もう少し自分で調べて、仕様を変更することを提案してみます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問