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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

Q&A

解決済

2回答

1236閲覧

[Xcode]シミュレータ上で操作が何もできなくなってしまった

Jonny_dayo

総合スコア48

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/08/27 16:52

前提・実現したいこと

画面上にTextFieldやButtonを設置したのですが、
シミュレータ上でタップしても文字入力できないし、ボタンも反応しないです。。
入力したりアイコンの画像を変える機能を使いたいです。。

書いたコード

import UIKit import Photos class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UITextFieldDelegate { @IBOutlet var icon: UIImageView! @IBOutlet var registerBT: UIButton! @IBOutlet var userNameTextField: UITextField! @IBOutlet var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() userNameTextField.delegate = self textField.delegate = self func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() return true } //アルバムの呼び出し PHPhotoLibrary.requestAuthorization { (status) in switch(status){ case .authorized: break case .denied: break case .notDetermined: break case .restricted: break @unknown default: break } } } @IBAction func iconChange(_ sender: Any) { let sourceType = UIImagePickerController.SourceType.photoLibrary if UIImagePickerController.isSourceTypeAvailable(.camera){ let cameraPicker = UIImagePickerController() cameraPicker.sourceType = sourceType cameraPicker.delegate = self cameraPicker.allowsEditing = true present(cameraPicker, animated: true, completion: nil) }else{ print("error") } } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { if let pickedImage = info[.editedImage] as? UIImage{ icon.image = pickedImage picker.dismiss(animated: true, completion: nil) } } }

ツールのバージョンなど

Xcode : Version 10.3 (10G8)
Swift : Apple Swift version 5.0.1

写真を許可しますか?と言う画面は出てくるのを確認しているため、
コード自体は問題ないのかなぁ、と思っていますが、
タップした反応が全くない(押した形跡も出ない)ため、パニックになっています。

コードを繋いでいないTextfieldや、直接遷移させるButton(control+クリックで次の画面に直接つなぐ方法のやつ)を追加してみても反応しなかったです、、
Viewのclassも設定しています。。

お助け頂けますと幸いです、よろしくお願い致します、、

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

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

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

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

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

guest

回答2

0

swift

1 if UIImagePickerController.isSourceTypeAvailable(.camera){

は、カメラ撮影ができるか否かを判断しています。

シミュレータは、カメラ撮影機能をサポートしていないので、
上記のif文は常にelseルートが実行されます。
elseルートには print("error")と書かれているので、
Xcodeのコンソールメッセージ表示エリアに
errorと表示されていないでしょうか?

一方、sourceTypeは

swift

1let sourceType = UIImagePickerController.SourceType.photoLibrary

と、cameraではなくphotoLibraryを使用するよう設定しています。

この処理は、カメラで写真を撮影したいのでしょうか?
それとも写真ライブラリ内に保存されている写真を読み込みたいのでしょうか?

カメラを使いたいのだったら、soureTypeに .cameraを指定して、
シミュレータでなく、実機でテストする必要があります。
写真ライブラリを使いたいのだったら、
isSourceTypeAvailableの引数に.photoLibraryを指定する必要があります。

投稿2019/08/28 07:34

TakeOne

総合スコア6299

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

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

Jonny_dayo

2019/08/28 13:59

回答ありがとうございます!! カメラとアルバムごっちゃになってました…!とても助かりましたありがとうございます!! そしてすみません、こちら画面上にUIScrollViewが載ってたため上から操作出来なくなっていたと判明しました!! お手数おかけしました…!
guest

0

ベストアンサー

override func viewDidLoad() {
の閉じかっこがなく、
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
が記載されていますよ。

なので反応しないのかと。。。

PHPhotoLibrary.requestAuthorization { (status) in
の位置も確認してくださいね。

投稿2019/08/27 23:16

hameji

総合スコア1380

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

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

Jonny_dayo

2019/08/28 02:09

hamejiさん回答ありがとうございます!! override func viewDidLoad()の中に ・userNameTextField.delegate = self ・textField.delegate = self ・PHPhotoLibrary.requestAuthorization { (status) in を入れて、 func textFieldShouldReturn(_ textField: UITextField) -> Bool { は最後ボタンアクションの後に変更したのですが、動作変わらず… コメントアウトして少しずつ確かめてもみたのですが、動作変わらず… といった状況です…
Jonny_dayo

2019/08/28 14:00

すみません、こちら画面上にUIScrollViewが載ってたため上から操作出来なくなっていたと判明しました!! 色々とコードがぐちゃぐちゃでしたね…もう一度基礎をやり直そうと思います! お忙しいところありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問