##画像加工ができるアプリを開発しています
###アルバムの画像をCollectionViewのCellに、複数枚表示しようと考えていますが表示されません。
記事をたくさん読みすぎてコードがごちゃごちゃになっている気がしています...。
もし対処法がわかる方いらっしゃいましたら、教えていただけると幸いです
swift
1⑴画像を表示するためのViewControllerです 2 3import UIKit 4import Photos 5import DKImagePickerController 6 7class MakeViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { 8 9 @IBOutlet var cameraImageView : UIImageView! 10 @IBOutlet var filterButton : UIButton! 11 @IBOutlet var editButton : UIButton! 12 @IBOutlet var collectionView : UICollectionView! 13 14 //画像加工するための元となる画像 15 var originalImage: UIImage! 16 17 //画像加工するフィルターの宣言 18 var filter: CIFilter! 19 20 override func viewDidLoad() { 21 super.viewDidLoad() 22 //UICollectionViewFlowLayoutをインスタンス化 23 let layout = UICollectionViewFlowLayout() 24 layout.sectionInset = UIEdgeInsets(top: 15, left: 5, bottom: 15, right: 5)//レイアウトを調整 25 layout.minimumInteritemSpacing = 0 26 collectionView.collectionViewLayout = layout 27 28 collectionView.delegate = self 29 collectionView.dataSource = self 30 } 31 32 //表示するセルの数 33 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 34 //今回はセルを9個にしてみる 35 return 9 36 } 37 38 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 39 //表示するCellの登録 40 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! MyCustomCell 41 cell.cameraImageView.image = originalImage 42 43 return cell 44 } 45 46 //セルの配置について決める 47 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 48 let horizontalSpace : CGFloat = 10 49 let cellSize : CGFloat = self.view.bounds.width / 3 - horizontalSpace 50 return CGSize(width: cellSize, height: cellSize) 51 } 52 53 //カメラロールにある画像を読み込むメソッド 54 @IBAction func openAlbum(){ 55 56 let pickerController = DKImagePickerController() 57 // 選択可能な枚数を9にする 58 pickerController.maxSelectableCount = 9 59 pickerController.didSelectAssets = { [unowned self] (assets: [DKAsset]) in 60 61 // 選択された画像はassetsに入れて返却されるのでfetchして取り出す 62 for asset in assets { 63 asset.fetchFullScreenImage(completeBlock: { (image, info) in 64 // ここで取り出せる 65 self.cameraImageView.image = image 66 }) 67 } 68 } 69 self.present(pickerController, animated: true) {} 70 performSegueToEdit() 71 performsegueToFilter() 72 } 73 74 func performSegueToEdit(){ 75 performSegue(withIdentifier: "toEditViewController", sender: nil) 76 } 77 func performsegueToFilter(){ 78 performSegue(withIdentifier: "toFilterViewController", sender: nil) 79 } 80 81 @IBAction func back(){ 82 self.dismiss(animated: true, completion: nil) 83 } 84} 85 86・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 87⑵画像を表示したいCellのコードです 88 89import UIKit 90import DKImagePickerController 91 92class MyCustomCell: UICollectionViewCell, UIImagePickerControllerDelegate { 93 @IBOutlet weak var cameraImageView: UIImageView! 94 var originalImage: UIImage! 95 96 override func awakeFromNib() { 97 super.awakeFromNib() 98 } 99 100 //カメラ、カメラロールを使った時に選択した画像をアプリ内に表示するためのメソッド 101 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]){ 102 103 cameraImageView.image = info[.editedImage] as? UIImage 104 105 originalImage = cameraImageView.image //カメラで写真撮った後に画像を加工する元画像として記憶しておく 106 } 107 108 109} 110 111・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/14 03:15
2020/06/14 09:14
2020/06/14 13:26