我在尝试使用配方上传功能来构建食谱应用程序。在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'中,它使用全局变量来查找相应的单元格。 –