如何隐藏标签?

时间:2016-08-09 09:32:36

标签: ios swift uilabel

正如你所看到的,我在这里有一个集合视图列表,有些产品有促销价,有些则没有。对于那些有促销的产品,它会显示红色价格和实际价格(旁边)。现在的问题是,我使用segue从以前的观点传递所有这些价值,现在我必须隐藏那些没有促销价的产品的促销价格标签,我应该怎么做?

hide label

以下是代码:

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

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! SubCategoryDetailsCollectionViewCell

    let grey = UIColor(red: 85.0/255.0, green: 85.0/255.0, blue: 85.0/255.0, alpha: 1.0)
    cell.layer.borderWidth = 1.0
    cell.layer.borderColor = grey.CGColor

    cell.titleLabel.text = name[indexPath.row]
    cell.imageView.sd_setImageWithURL(NSURL(string: thumbImg1[indexPath.row] ))

我试图以这种方式隐藏标签,但它并没有真正起作用, 它工作了一段时间,在我开始滚动我的集合视图后,所有促销标签都被隐藏了

    if promo[indexPath.row] == "0"{

        cell.promoLabel.hidden = true
    }else{
        cell.promoLabel.text = "RM" + promo[indexPath.row]
    }

    cell.priceLabel.text = "RM" + price[indexPath.row]

    cell.productLabel.text = label[indexPath.row]

    cell.setNeedsDisplay()
    return cell
}

3 个答案:

答案 0 :(得分:2)

试试这个

if promo[indexPath.row] == "0"{
    cell.promoLabel.hidden = true
}else{
   cell.promoLabel.hidden = false
    cell.promoLabel.text = "RM" + promo[indexPath.row]
}


cell.productLabel.text = label[indexPath.row]

cell.setNeedsDisplay()
return cell

}

答案 1 :(得分:0)

您也可以通过更改Alpha值来隐藏标签。尝试

cell.priceLabel.alpha = 0 //to hide
cell.priceLabel.alpha = 1.0 //to show

答案 2 :(得分:0)

  

由于重复使用单元格而出现此问题

试试这段代码:

if promo[indexPath.row] == "0" {
   cell.promoLabel.hidden = true
}
else {
   cell.promoLabel.hidden = false
   cell.promoLabel.text = "RM" + promo[indexPath.row]
}