2015-07-13 179 views
0

我有一个UIImageViews的数组,我想要在屏幕上显示。但是,我似乎无法做到这一点。我宣布我的UIImageViews阵列像这样:UIImageView Array未显示内容?

class EventCell: UITableViewCell, CellDelegate{ 
    @IBOutlet var eventName: UILabel! 
    @IBOutlet var eventLocation: UILabel! 
    @IBOutlet var attendeesImages: [UIImageView]! 
} 

而且我有一个显示的EventCell内容像这样的功能:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    //Dequeue a "reusable" cell 
    let cell = tableView.dequeueReusableCellWithIdentifier(eventCellIdentifier) as! EventCell 
    setCellContents(cell, indexPath: indexPath) 
    return cell 
} 

//Set contents of Event Cell.. self.events is a global array 
//which have information that EventCell objects need to display 

func setCellContents(cell:EventCell, indexPath: NSIndexPath!){ 
    let item = self.events[indexPath.section] 
    var count = 0 

    cell.eventName.text = item.eventName() 
    cell.eventLocation.text = item.eventLocation() 

    cell.attendeesImage.removeAll(keepCapacity: false)//Remove old images before adding new 
    for value in item.attendeesImage { 
     let newImageView = UIImageView(image : value) 
     newImageView.clipsToBounds = true 
     newImageView.layer.cornerRadius = newImageView.frame.size.width/2 
     cell.attendeesImage.append(newImageView) 
     println("Count inside: \(cell.attendeesImage.count)") 
    } 
} 

我打印出来的cell.attendeesImagecount,以确保没有多余的图片正在被添加,它似乎证明是正确的。但是,我不知道为什么我的图像不显示。我确定在EventCell中将cell.attendeesImage作为IBCollection挂在我的Storyboard中(因为它是一个Array)。任何想法为什么这不显示?谢谢!

+0

如何在你的表格视图单元格中布置图像? – ozgur

+0

@ozgur那一步我还没有完成,我也不完全确定如何做这部分。在我解决这个问题之后,我正在研究它。有什么建议么? – user1871869

+0

如果你还没有实现那部分,那么我不太明白你的问题是什么。代码负责在你的单元格中显示图像在哪里?您是否检查过像cell.contentView.addSubview(newImageView)' – ozgur

回答

0

您正在使用错误的收集插座“attendeesImages”。

加载视图时,将使用在界面构建器中创建的图像视图创建和初始化阵列attendeesImages。但是,如果你删除所有的参考文献,你就失去了网点和真实观点之间的联系。您创建的新图像视图不是单元格中的视图。他们仍然是单元格的子视图,但现在你还没有iboutlet引用它们。

解决方案:不要从数组中删除值。只需在每个图像视图中修改图像即可。

+0

每个单元格的图像总数可能不同,因此删除'prepareForReuse'中的所有内容并在委托方法中重新填充它们对我来说更有意义。 – ozgur

+0

啊好的。所以我拿出'cell.attendeesImage'这一行。removeAll(keepCapacity:false)''但这似乎让事情变得更糟。实际上,当我打印出'cell.attendeesImage.count'时,计数会不断增加,我认为这会影响实际显示的内容。对此有任何修正? – user1871869

+0

@ozgur你介意给我一个你上面提到的事情的轮廓? – user1871869