前提・実現したいこと
カメラで撮った写真をボタンのsetimageに反映させたい
発生している問題・エラーメッセージ
撮った写真をphotoImageの中に入れて、ボタンに撮った写真を反映させるためにsetImageの中にphotoImageを入れて反映させようとしたのですが全く表示されません。何方か教えてくれると助かります。
該当のソースコード
Swift
ソースコード @IBOutlet weak var hospitalText: UITextField! @IBOutlet weak var examinationText: UITextField! @IBOutlet weak var cameraImage: UIButton! @IBOutlet weak var LoadIndicator: UIActivityIndicatorView! var photoImage : UIImage! var imageFile :String! var downloadUrl: String! private let db = Firestore.firestore() private let userID = Auth.auth().currentUser?.uid override func viewDidLoad() { super.viewDidLoad() LoadIndicator.center = view.center LoadIndicator.style = .large LoadIndicator.color = .blue view.addSubview(LoadIndicator) examinationText.delegate = self hospitalText.delegate = self } func textFieldShouldReturn(_ textField:UITextField ) -> Bool{ hospitalText.resignFirstResponder() examinationText.resignFirstResponder() return true } func getTime() -> String{ //時間を取得する let dt = Date() let dateFormatter = DateFormatter() //日付の書式&日本時間にする dateFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "yMMMdHm", options: 0, locale: Locale(identifier: "ja_JP")) let date = dateFormatter.string(from:dt) return date } func uploadImage() -> String { let storage = Storage.storage().reference(forURL: String(describing: "Medicine")) let imageRef = storage.child("MedicineImage").child("(userID)") let imageData:Data = photoImage.pngData()! imageRef.putData(imageData,metadata: nil){ (metaData,error) in if error != nil{ print(error.debugDescription) return } } imageRef.downloadURL(){ url,err in if let url = url { self.downloadUrl = url.absoluteString print("(String(describing: self.downloadUrl))") }else{ print(err as Any) } } return downloadUrl } private func Add() { imageFile = uploadImage() db.collection("users").document("(userID!)").collection("medicinedata").document((getTime())).setData([ "hospitalData": hospitalText.text! , "examinationData": examinationText.text!, "time": getTime(), "photoData": imageFile! ]) } @IBAction func startUiImagePickerController(_ sender: Any) { //カメラを起動する if UIImagePickerController.isSourceTypeAvailable(UIImagePickerController.SourceType.camera){ let picker = UIImagePickerController() picker.sourceType = .camera picker.modalPresentationStyle = UIModalPresentationStyle.fullScreen picker.delegate = self present(picker, animated: true, completion: nil) } } private func imagePickController(_ imagePick: UIImagePickerController,didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { if let photo = info[.originalImage] as? UIImage{ photoImage = photo cameraImage.setImage(photoImage, for: .normal) imagePick.dismiss(animated: true, completion: nil) }else{ let dialog = UIAlertController(title: "画像を取得出来ませんでした", message: nil, preferredStyle: .alert) let dialogAction = UIAlertAction(title: "OK", style: .default, handler: nil) dialog.addAction(dialogAction) present(dialog, animated: true, completion: nil) } }
まだ回答がついていません
会員登録して回答してみよう