我在嘗試使用配方上傳功能來構建食譜應用程序。在PostController中,所有烹飪步驟將有一個桌面視圖,每個烹飪步驟都在桌面視圖單元中。在單元格中將會有一個文本域的描述和一個UIImageView用於圖片上傳(從pickerController中選擇的圖片將在這個UIImageView中顯示以供以後上傳)。我正在嘗試執行 imageViewInCell.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleImageUpload)))
以調用生成UIImagePickerController的handleImageUpload()
函數。但是通過這樣做,我遇到了兩個問題。在每個tableview單元格中使用UIImagePickerController
- 我不能在
UITapGestureRecognizer
由選擇器獲得的小區的index.row
值,與列的索引我不能選擇的圖像分配返回到信元的的UIImageView。 即使我在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()'使用)的索引,它賦值'cell.imageViewInCell.tag'的'selectedIndex'。在'didFinishPickingMediaWithInfo'中,它使用全局變量來查找相應的單元格。 –