所以这就是发生的事情:我创建了一个tableView,并从另一个控制器委托了一些东西给它。来自单元格的textLabels工作正常,但每当我添加cell.imageView?.image
时,所有单元格都会更改为该特定图像。
有关如何修复它的任何想法? textLabels是静态的,但图像不是。
这里我将图像接收到tableView:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell!
let row = indexPath.row
let titulo = arrayInfo[row]
let image = imgR
cell.textLabel!.text = titulo
cell.imageView?.image = image
return cell
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "add") {
let view = segue.destinationViewController as! EsseVaiPassar
view.delegate = self
view.delegateimg = self
}
}
在这里我使用tableView:
将它从控制器传递到另一个控制器func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage
imagemRecebida.contentMode = .ScaleAspectFit
imagemRecebida.image = pickedImage
delegateimg?.passImage(pickedImage!)
print("IMAGE PICKED: \(pickedImage)")
dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
dismissViewControllerAnimated(true, completion: nil)
}
答案 0 :(得分:2)
代码按预期工作。对于textview,您要求值arrayInfo[row]
。因此,对于indexPath.row
更改的每个单元格,数组中的相应元素将显示在文本字段中。
但是对于你的图像,它只是一个图像,而不是一个数组。您没有使用indexPath.row
来选择特定图片。
要向tableView添加不同的图像,只需创建一个图像数组,就像创建了一个String
数组一样。只需实现为textView cell.imageView?.image = image[indexPath.row]
要仅将图像添加到第一个单元格并将剩余的单元格留空,请使用此
if indexPath.row == 0
{
cell.imageView?.image = image
}
答案 1 :(得分:0)
在`cellForRowAtIndexPath'你有这个代码:
...
let image = imgR
cell.textLabel!.text = titulo
cell.imageView?.image = image
...
您要将imgR
分配给image
常量,然后您将image
分配给imageView?.image
,因此每个单元格都会将图像存储在变量{{1}中}}
如果您有多个图像,则需要使用逻辑来为正确的行(通常是项目数组)提取正确的图像。