原型细胞+图像+委托

时间:2016-06-09 03:15:56

标签: swift image uitableview delegates cell

所以这就是发生的事情:我创建了一个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)
    }

2 个答案:

答案 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}中}}

如果您有多个图像,则需要使用逻辑来为正确的行(通常是项目数组)提取正确的图像。