我用的是Swift,我正在开发一个有“相机”按钮的应用程序。如果我点击这个按钮,iPhone相机就会打开。但是,当我进入“使用照片”时,应用程序不起作用。
如何将快照图像保存在数组中,以便它们在UITableView
中列出?
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete{
imageArray.removeAtIndex(indexPath.row)
self.mytableview.reloadData()
}
}
最佳答案
您正在将图像设置为ImagePicker实例,该实例将无法正常工作。相反,您希望:
将映像序列化为nsdata对象
将nsdata对象存储在数据库中
从tableview的数据源中的数据库中读取每个图像
要获取nsdata对象,可以将图像转换为png。您应该在didFinishPickingImage
委托函数中添加类似的内容:
让imgdata=uiImagePNgrePresentation(图像)
item.setValue(imgdata,forkey:“图像”)
上面的代码假设您的数据模型有一个列,其中包含类型数据和名称image
。然后它将把转换后的图像插入数据库。
现在,在TableViewDelegate的CellatorWForindexpath中,从数据库中读取每个图像的数据,并将其放入单元格中,方法如下:
cell.imageview.image=uiimage(数据:imgdata)
但是,我不建议使用这种方法来存储全分辨率照片。核心数据是为相对较小的值而设计的,而不是全分辨率图像。最好使用标准化的命名约定将图像存储在文件系统(应用程序的文档文件夹)中。