【问题标题】:Set UIImage with Delegate Method使用委托方法设置 UIImage
【发布时间】:2018-01-03 18:09:22
【问题描述】:

我为两个不同的班级指定了两个代表。一个是UITableViewCell 类,即CameraTapDelegate

protocol CameraTapDelegate {
    func showCameraOptions()
}

当用户在单元格中点击UIImageView 时会打开相机或图库。当用户选择图像func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 时执行。为了将此图像返回单元格,我制定了另一个协议,但这次是在 ViewController 类:

protocol UserImageDelegate {
    func selectedImage(image: UIImage)
}

我在ViewController 类中调用了didFinishPickingMediaWithInfo 以将所选图像传递给UITableViewCell。所以我的问题是,在UITableViewCell 类中我添加了selectedImage 方法,但它没有被执行。

【问题讨论】:

  • 我不清楚您的期望与实际发生的情况。您能否展示一个对象实现UserImageDelegate 协议的代码以及您如何使用该对象?
  • 确保您还分配了代表,并说明您如何称呼它UserImageDelegate..
  • @MilanNosáľ 我应该在tableViewCell 类中分配UserImageDelegate 什么?
  • @PhillipMills 更新了我的问题,希望它现在可以更清楚地了解问题。
  • UserImageDelegateUITableViewCell 实现。知道选择了图像的对象是ViewController。因此ViewController 应该有某个属性weak var userImageDelegate: UserImageDelegate?。在didFinishPickingMediaWithInfo 我希望看到:delegate?.selectedImage(image: image)。现在唯一剩下的就是确保delegate 引用单元格,所以我猜在cellForRow 中我希望看到类似:self.userImageDelegate = cell

标签: ios uitableview delegates uiimage


【解决方案1】:

你必须记住给UserImageDelegate类型的委托赋值。

UserImageDelegateUITableViewCell 实现。知道选择了图像的对象是ViewController。因此ViewController 应该定义属性:

weak var userImageDelegate: UserImageDelegate?

didFinishPickingMediaWithInfo 我希望看到:

userImageDelegate?.selectedImage(image: image)

现在唯一剩下的就是确保 userImageDelegate 引用实现它的 cell,所以我猜在 cellForRow 中我希望看到类似的内容:

self.userImageDelegate = cell

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多