swift2 如何从Eureka 中的ImageRow访问所选图像?

bvk5enib  于 2022-11-06  发布在  Swift
关注(0)|答案(3)|浏览(121)

如何访问由Eureka 中的ImageRow选择的图像?

form = Section()
            <<< ImageRow("Pic"){
                $0.title = "Picture"
            }.cellSetup { cell, row in

                if let picPath = NSURL(string: _user.pic!),
                    data = NSData(contentsOfURL: picPath) {
                    cell.imageView?.image = UIImage(data: data)
                }
            }

对于文本字段,我这样做是为了获取表单值:

let values = form.values()
if values["Name"]! != nil {
   name = values["Name"] as! String
}

正在尝试找出如何获取图像行的值。我需要将选定的图像上载到服务器。

fnx2tebb

fnx2tebb1#

想通了:

let picture = values["Pic"] as? UIImage
ldfqzlk8

ldfqzlk82#

对于那些试图在没有图像时显示占位符并在选择图像时删除占位符的人,我是这样做的

<<< ImageRow(FormItems.imageEntryOne) { row in
row.title = "Image #1"
row.noValueDisplayText = "Select"
row.sourceTypes = [.PhotoLibrary, .SavedPhotosAlbum]
row.clearAction = .yes(style: .destructive)
}
.cellUpdate({ (cell, row) in
    cell.accessoryView?.layer.cornerRadius = 4
    cell.accessoryView?.frame = CGRect(x: 0, y: 0, width: 34, height: 34)
}).onChange({ (row) in
    row.noValueDisplayText = row.value == nil ? "Select" : ""
})
csga3l58

csga3l583#

只需遵循以下步骤,swift 4.x

let imageRow = self.form.rowBy(tag: "ImageRow") as? ImageRow

现在您可以访问imageRow.value,它返回UIImage,因此您可以使用

guard let imageValue = imageRow?.value else{return}

如果要将其上载到服务器,只需将映像转换为NSdata即可

let selectedImage = NSData()
selectedImage = imageRow?.value?.jpegData(compressionQuality: 0.3)

相关问题