質問させていただきたいのが、PlusButtonを押した時にTextFieldが表示されるようなプログラムを作成したいのですが、コードはエラーが起きていないのですが、PlusButtonを押しても表示されません。
もしかしたら、MapViewの下に隠れてしまっているのかもと思ったのですがその可能性はあるのでしょうか。
どなたかご指摘お願いいたします。
お手数ですが、どなたかよろしくお願いします。
import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController ,MKMapViewDelegate,CLLocationManagerDelegate{
@IBOutlet weak var PlusButton: UIButton! @IBOutlet weak var TextField: UITextField! var locationManager = CLLocationManager() // MapViewのインスタンス生成. let mapView = MKMapView() override func viewDidLoad() { super.viewDidLoad() locationManager.delegate = self // 画面背景色を設定 self.view.backgroundColor = UIColor(red:0.7,green:0.7,blue:0.7,alpha:1.0) PlusButton.layer.zPosition = 2 //TextFieldを表示する TextField.isHidden = true } @IBAction func PlusButton(_ sender: Any) { TextField.isHidden = false } // 画面回転にも対応する override func viewDidAppear(_ animated: Bool) { var topPadding: CGFloat = 0 var bottomPadding: CGFloat = 0 var leftPadding: CGFloat = 0 var rightPadding: CGFloat = 0 if #available(iOS 11.0, *) { // 'keyWindow' was deprecated in iOS 13.0: Should not be used for applications let window = UIApplication.shared.windows.filter {$0.isKeyWindow}.first topPadding = window!.safeAreaInsets.top bottomPadding = window!.safeAreaInsets.bottom leftPadding = window!.safeAreaInsets.left rightPadding = window!.safeAreaInsets.right } //位置情報サービスの確認 CLLocationManager.locationServicesEnabled() // セキュリティ認証のステータス let status = CLLocationManager.authorizationStatus() if(status == CLAuthorizationStatus.notDetermined) { print("NotDetermined") // 許可をリクエスト locationManager.requestWhenInUseAuthorization() } else if(status == CLAuthorizationStatus.restricted){ print("Restricted") } else if(status == CLAuthorizationStatus.authorizedWhenInUse){ print("authorizedWhenInUse") } else if(status == CLAuthorizationStatus.authorizedAlways){ print("authorizedAlways") } else{ print("not allowed") } // 位置情報の更新 locationManager.startUpdatingLocation() // MapViewをSafeAreaに収める(Portraitのケース) // 以降、Landscape のみを想定 let screenWidth = view.frame.size.width let screenHeight = view.frame.size.height let rect = CGRect(x: leftPadding, y: topPadding, width: screenWidth - leftPadding - rightPadding, height: screenHeight - topPadding - bottomPadding ) mapView.frame = rect // Delegateを設定. mapView.delegate = self // 縮尺を設定 var region:MKCoordinateRegion = mapView.region region.center = mapView.userLocation.coordinate region.span.latitudeDelta = 0.04 region.span.longitudeDelta = 0.04 mapView.frame = view.bounds mapView.setRegion(region,animated:true) // MapViewをViewに追加. self.view.addSubview(mapView) mapView.mapType = MKMapType.hybrid mapView.userTrackingMode = MKUserTrackingMode.follow mapView.userTrackingMode = MKUserTrackingMode.followWithHeading // MapViewをViewに追加 self.view.addSubview(mapView) } func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) { print("region changed") }
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。