以编程方式将UILabel添加到UICollectionViewCell
问题描述:
我有一个UICollectionView,它呈现瀑布式布局中的图像,这非常完美。我现在试图在每张图片上添加说明。面临的挑战是我试图以编程方式添加UILabel,但它没有出现。我确定label.text包含文本。以编程方式将UILabel添加到UICollectionViewCell
class NTWaterfallViewCell :UICollectionViewCell, NTTansitionWaterfallGridViewProtocol{
var photoName = ""
var imageName : String?
var imageViewContent : UIImageView = UIImageView()
var label:UILabel = UILabel()
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor.lightGray
contentView.addSubview(imageViewContent)
contentView.addSubview(label)
}
override func layoutSubviews() {
super.layoutSubviews()
imageViewContent.frame = CGRect(x: 0, y: 0, width: frame.size.width, height: frame.size.height)
imageViewContent.loadImageWithURL(imageName!)
label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21))
label.center = CGPoint(x: 160, y: 285)
label.textAlignment = .center
label.text = photoName
}
答
你在你的代码创建两个UILabel
实例 - 第一次是在var label: UILabel = UILabel()
,而这一次被添加到您的内容查看在init
。
后来,您在layoutSubViews()
中用新实例覆盖self.label
,但这个新实例从未添加到contentView。
重新排列你的代码,以便只创建和添加一个实例。