前提・実現したいこと
Swift初学者です。
Start Developing iOS Apps (Swift)
https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/
を終えた後、これを参考にアプリを作っております。
このチュートリアルのWork with View ControllersのところでUIImageViewをライブラリから取得していますが、
この部分で5枚の画像を取得したいと模索しているところです。
以下の画像のようなイメージです。
発生している問題
すべて画像1に保存されてしまいます。 原因は`photo1ImageView.image = selectedImage`の部分とわかってはいるのですが、解決方法がわかりません。
該当のソースコード
Swift
1 @IBAction func selectImage1FromPhotoLibrary(_ sender: UITapGestureRecognizer) { 2 //アラート表示のためにインスタンス化 3 let actionSheet = UIAlertController(title: "", message: "写真を設定してください", preferredStyle: UIAlertController.Style.actionSheet) 4 let tappedcamera = UIAlertAction(title: "カメラ", style: UIAlertAction.Style.default, handler: { 5 (action: UIAlertAction!) in 6 self.tappedcamera() 7 }) 8 9 let tappedlibrary = UIAlertAction(title: "ライブラリ", style: UIAlertAction.Style.default, handler: { 10 (action: UIAlertAction!) in 11 self.tappedlibrary() 12 }) 13 14 let cancel = UIAlertAction(title: "キャンセル", style: UIAlertAction.Style.cancel, handler: { 15 (action: UIAlertAction!) in 16 print("キャンセル") 17 }) 18 19 actionSheet.addAction(tappedcamera) 20 actionSheet.addAction(tappedlibrary) 21 actionSheet.addAction(cancel) 22 23 present(actionSheet, animated: true, completion: nil) 24 25 } 26 27 @IBAction func selectImage2FromPhotoLibrary(_ sender: UITapGestureRecognizer) { 28 //アラート表示のためにインスタンス化 29 let actionSheet = UIAlertController(title: "", message: "写真を設定してください", preferredStyle: UIAlertController.Style.actionSheet) 30 let tappedcamera = UIAlertAction(title: "カメラ", style: UIAlertAction.Style.default, handler: { 31 (action: UIAlertAction!) in 32 self.tappedcamera() 33 }) 34 35 let tappedlibrary = UIAlertAction(title: "ライブラリ", style: UIAlertAction.Style.default, handler: { 36 (action: UIAlertAction!) in 37 self.tappedlibrary() 38 }) 39 40 let cancel = UIAlertAction(title: "キャンセル", style: UIAlertAction.Style.cancel, handler: { 41 (action: UIAlertAction!) in 42 print("キャンセル") 43 }) 44 45 actionSheet.addAction(tappedcamera) 46 actionSheet.addAction(tappedlibrary) 47 actionSheet.addAction(cancel) 48 49 present(actionSheet, animated: true, completion: nil) 50 } 51 52 func tappedlibrary() { 53 let sourceType:UIImagePickerController.SourceType = 54 UIImagePickerController.SourceType.photoLibrary 55 56 if UIImagePickerController.isSourceTypeAvailable( 57 UIImagePickerController.SourceType.photoLibrary){ 58 // インスタンスの作成 59 let cameraPicker = UIImagePickerController() 60 cameraPicker.sourceType = sourceType 61 cameraPicker.delegate = self 62 self.present(cameraPicker, animated: true, completion: nil) 63 64 } 65 else{ 66 print("error") 67 68 } 69 }
試したこと
画像5枚に、それぞれselectImage1FromPhotoLibraryからselectImage5FromPhotoLibraryを与えています。
試したことは、UIImageの配列をつくり、配列[0]が空なら1枚目に入れ、配列[1] が2枚目に入れ、というふうに考えたのですが
それぞれの配列成分が空かどうか判断することができなかった。
カウントすればいいんじゃないかと思い、画像入れるたびに+1していけば、順番に保存できたが、当然ながら写真を置き換えることはできません。
photo1ImageView.image = nilというふうにif文で条件分岐させようとしましたがこちらもうまくいきませんでした。
解決方法を教えてもらえると幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/25 04:04