Uitableviewcell 不显示图像 | Swift
Tableviewcell not displays image | Swift
管理员可以添加image/text,添加后显示内容,但图片不显示。我需要添加文本来显示图像。例如,我可以添加很多图片,它们在 table 中,但只有管理员添加一些文本才能查看它们。
事情是我在 base64 中转换图像,添加到数组,我解码 cellForRowAtIndexPath 并添加到单元格。
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
var data = NSData()
data = UIImagePNGRepresentation(image)!
let base64String = data.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
let newImage = "imageBase64" + base64String
content.append(newImage)
self.dismissViewControllerAnimated(true, completion: nil)
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
if content[indexPath.row].rangeOfString("imageBase64") == nil {
let cell = self.articleTableView.dequeueReusableCellWithIdentifier("Text Cell", forIndexPath: indexPath) as! TextTableViewCell
cell.textArticle.text = content[indexPath.row] as String
return cell
}
else{
let cell = self.articleTableView.dequeueReusableCellWithIdentifier("Image Cell", forIndexPath: indexPath) as! ImageTableViewCell
let imageString = content[indexPath.row].stringByReplacingOccurrencesOfString("imageBase64", withString: "")
let decodedData = NSData(base64EncodedString: imageString, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
let decodedImage = UIImage(data: decodedData!)
cell.backgroundColor = UIColor.clearColor()
cell.imageArticle.image = decodedImage
return cell
}
如何让图片立即显示?
在 content.append(newImage)
之后在 func imagePickerController
调用 self.tableView.reloadData()
,也许你忘记了
管理员可以添加image/text,添加后显示内容,但图片不显示。我需要添加文本来显示图像。例如,我可以添加很多图片,它们在 table 中,但只有管理员添加一些文本才能查看它们。
事情是我在 base64 中转换图像,添加到数组,我解码 cellForRowAtIndexPath 并添加到单元格。
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
var data = NSData()
data = UIImagePNGRepresentation(image)!
let base64String = data.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
let newImage = "imageBase64" + base64String
content.append(newImage)
self.dismissViewControllerAnimated(true, completion: nil)
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
if content[indexPath.row].rangeOfString("imageBase64") == nil {
let cell = self.articleTableView.dequeueReusableCellWithIdentifier("Text Cell", forIndexPath: indexPath) as! TextTableViewCell
cell.textArticle.text = content[indexPath.row] as String
return cell
}
else{
let cell = self.articleTableView.dequeueReusableCellWithIdentifier("Image Cell", forIndexPath: indexPath) as! ImageTableViewCell
let imageString = content[indexPath.row].stringByReplacingOccurrencesOfString("imageBase64", withString: "")
let decodedData = NSData(base64EncodedString: imageString, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
let decodedImage = UIImage(data: decodedData!)
cell.backgroundColor = UIColor.clearColor()
cell.imageArticle.image = decodedImage
return cell
}
如何让图片立即显示?
在 content.append(newImage)
之后在 func imagePickerController
调用 self.tableView.reloadData()
,也许你忘记了