2017-09-25 11 views
0

完全に機能する、滝型のレイアウトで画像を表示するUICollectionViewがあります。私は今、各画像に説明を追加しようとしています。課題は、プログラムでUILabelを追加しようとしていますが、表示されません。私は特定のlabel.textにテキストが含まれています。UICollectionViewCellにUILabelをプログラムで追加する

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 
    } 

答えて

1

あなたのコード内で2つのUILabelのインスタンスを作成している - 最初はvar label: UILabel = UILabel()であり、この1はinitであなたのcontentViewに追加されます。

その後、layoutSubViews()に新しいインスタンスのself.labelを上書きしますが、この新しいインスタンスはcontentViewに追加されません。

インスタンスを1つだけ作成して追加するようにコードを並べ替えます。

関連する問題