私はレシピアップロード機能を備えたレシピアプリケーションを構築しようとしています。 PostControllerでは、すべての調理ステップのテーブルビューがテーブルビューセル内にあります。セル内にはテキストフィールドの説明があり、UIImageViewピクチャアップロード用です(pickerControllerから選択した画像は、後でアップロードするためにこのUIImageViewに表示されます)。私はしようとしています imageViewInCell.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleImageUpload)))
UIImagePickerControllerを生成するhandleImageUpload()
関数を呼び出すことです。しかし、これを行うことで、私は2つの問題に直面しました。各テーブルビューセルでUIImagePickerControllerを使用
- IバックセルのUIImageViewに選択された画像を割り当てることができないインデックスアウトとIは、
UITapGestureRecognizer
で選択することによって、細胞のindex.row
値を得ることができません。 handleImageUploadでindex.rowを取得したとしても、選択したイメージを割り当てるには以下の関数が必要です。この関数はどのようにして自分のパラメータを受け入れ、対応するimageViewInCellを見つけるでしょうか?
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { if let selectedImage: UIImage = info[UIImagePickerControllerOriginalImage] as? UIImage { imageViewInCell.image = selectedImage } dismiss(animated: true, completion: nil) }
didSelectRowAtIndexPathの代わりにタップジェスチャーを使用するのはなぜですか? –
この操作はピクチャにのみ関連しているだけなので、imageViewにUITapGestureを追加しました。 didSelectRowAtIndexPathの使用は選択肢ではないかもしれません。セルにもテキストフィールドがあるからです。 –
最後に、handleImageUpload()が呼び出されるたびに、グローバル変数 'selectedIndex'(' didFinishPickingMediaWithInfo'で使用)と 'cell.imageViewInCell.tag'(' handleImageUpload() 'で使用)の両方でインデックスを保存しました。 'selectedIndex'に値' cell.imageViewInCell.tag'を割り当てます。 'didFinishPickingMediaWithInfo'では、対応するセルを見つけるためにグローバル変数をとります。 –