mapViewの上に入力ボックスを置いています。
その入力ボックスをタップした時にキーボードを表示させたいです。
しかしmapViewに隠されてしまって表示されません。(mapViewを描画しなければキーボードが出ることを確認しました)
loadViewでViewにmapViewを入れ、viewWillAppearでViewに入力ボックスを入れてます。
入力ボックスをコードで描画してもstoryboardで描画しても結果は同じでした。
キーボードのインスタンスを取得して描画順序を変えるのではないかと思いましたが、マニアックな内容になるためか私が調べてもやり方が分かりませんでした...
self.view.sendSubviewToBack(View)を使ってmapViewを最背面に移動させてもキーボードは表示できませんでした。
メインコードはこちら(文字数制限があるため肝心なとこだけ)
swift
1 2import UIKit 3import GoogleMaps 4 5class ViewController: UIViewController, GMSMapViewDelegate, CLLocationManagerDelegate, UITextFieldDelegate{ 6 7 var mapView: GMSMapView! 8 var direction: Direction! 9 var coordinates: [CLLocationCoordinate2D] = [] 10 var routeAddMode: Bool = false 11 var routeColor: [UIColor] = [.darkGray,.red,.blue,.green,.cyan,.yellow,.brown,.magenta,.orange,.purple] 12 var myLatitude = 34.971698 13 var myLongitude = 138.3890637 14 var locationManager = CLLocationManager() 15 var markerArray = [GMSMarker]() 16 17 // UIButtonのインスタンスを作成する 18 let addButton = UIButton(type: UIButton.ButtonType.system) 19 let currentLocationButton = UIButton(type: UIButton.ButtonType.system) 20 let resetButton = UIButton(type: UIButton.ButtonType.system) 21 let allResetButton = UIButton(type: UIButton.ButtonType.system) 22 // UITextFieldを生成 23 let textField = UITextField() 24 //CLGeocoderインスタンスを取得 25 let geocoder = CLGeocoder() 26 27 //Viewにマップのインスタンスを入れたりなどの諸々の処理 28 override func loadView() { 29 super.loadView() 30 navigationController?.isNavigationBarHidden = true 31 //カメラがマップを表示する位置(デフォルトして静岡駅を設定) 32 let camera = GMSCameraPosition.camera(withLatitude:34.971698,longitude:138.3890637,zoom:13.0) 33 //位置情報取得ONに 34 self.mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) 35 self.mapView.isMyLocationEnabled = true 36 self.mapView.delegate = self 37 self.view = self.mapView 38 // User Location 39 locationManager.delegate = self 40 locationManager.requestWhenInUseAuthorization() 41 locationManager.desiredAccuracy = kCLLocationAccuracyBest 42 locationManager.startUpdatingLocation() 43 } 44 //入力ボックスやボタンのデザイン設定と描画 45 override func viewWillAppear(_ animated: Bool) { 46 super.viewWillAppear(animated) 47 //検索ボックスの位置や大きさ 48 self.textField.frame = CGRect(x: self.view.frame.minX + 100, 49 y: self.view.frame.minY + 50, 50 width: self.view.frame.width - 200, 51 height: 40) 52 // プレースホルダを設定 53 textField.placeholder = "住所、郵便番号などを入力" 54 // キーボードタイプを指定 55 textField.keyboardType = .default 56 // 枠線のスタイルを設定 57 textField.borderStyle = .roundedRect 58 // 改行ボタンの種類を設定 59 textField.returnKeyType = .done 60 // テキストを全消去するボタンを表示 61 textField.clearButtonMode = .always 62 // UITextFieldを追加 63 self.view.addSubview(textField) 64 // デリゲートを指定 65 textField.delegate = self 66 //Viewに追加 67 self.view.addSubview(self.textField)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。