无法访问Swift的单元子视图

时间:2015-08-06 13:01:38

标签: ios swift uicollectionviewcell

我在UICollectionView类中有这个函数:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("MoreCell", forIndexPath: indexPath) as! UICollectionViewCell

    if let icLab = cell.viewWithTag(491) as? UILabel{
        icLab.text = moreitems[indexPath.section][indexPath.row].title
    }else{
        println("Couldnt find label")
    }

    // Same code for imageView

UICollectionView的其余部分很好,因为它确实在屏幕上正确显示了单元格,以及最初设置的标签文本(“标签”)

但我似乎无法访问里面的子视图。以下是它们的设置方式:

enter image description here

我确实正确设置了标签和Cell ID。

有没有人知道为什么要继续打印Couldn't find Label

屏幕看起来像这样:

enter image description here

显然,没有编辑占位符图像和标签。

2 个答案:

答案 0 :(得分:1)

来自苹果的文件

  

已安装的视图将添加到视图层次结构中。未添加已卸载的视图。

选择标签并选择“Installedenter image description here enter image description here

答案 1 :(得分:0)

来自UICollectionViewCell documentation

  

var contentView:UIView {get}

     

配置单元格时,您可以添加任何自定义视图   在此视图中表示您的单元格内容。单元格对象放置   此视图中的内容位于任何背景视图之前。

因此,您必须在单元格的contentView中查找您的视图,而不是单元格本身

if let icLab = cell.contentView.viewWithTag(491) as? UILabel{
    icLab.text = moreitems[indexPath.section][indexPath.row].title
}else{
    println("Couldnt find label")
}