有没有更好的方法将子视图添加到UITableViewCell?

时间:2015-11-06 16:04:07

标签: ios

我正在添加UIImageView子视图,但我目前正以编程方式创建。我对此感到很难过。有没有更简单的方法通过我UITableView中的怪异'原型单元'来做到这一点?

理想情况下,我可以在我的故事板中的原型单元格中删除UIImageView然后更改其值,但是当我这样做时,单元格就是空的。当然,我也不允许创建网点。

2 个答案:

答案 0 :(得分:0)

单元格原型需要包含UIImageView。如果您正在使用故事板,请选择单元格原型并确保其属性在属性检查器(右侧面板)中设置为Basic

单元格标识符与故事板中原型单元格中键入的标识符不匹配。确保在属性检查器中为cell输入Identifier

要检查图像是否存在,

override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!
    {
        let cellIdentifier = "cell"

        var cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as UITableViewCell

        cell.textLabel.text = self.products[indexPath.row]
        var image : UIImage = UIImage(named: "myImage")
        cell.imageView.image = image

        return cell
    }

答案 1 :(得分:0)

在故事板中将原型单元格更改为自定义。为原型单元格提供一个标识符值,该值将在cellForRowAtIndexPath委托方法中稍后出列。在原型单元格中删除所需的视图。对于您在单元格中删除的每个子视图,在故事板中添加唯一标记值。确保每个子视图都有唯一的标记号。

像往常一样实施所有UITableViewDelegate方法。在cellForRowAtIndexPath委托方法中,您可以在返回单元格之前获取图像视图实例,如下所示:

imageView = cell.viewWithTag(1)

您不能为重复视图创建出口,因此您无法在原型单元格中创建出口。