2017-09-25 5 views
0

완벽하게 작동하는 폭포 형 레이아웃의 이미지를 표시하는 UICollectionView가 있습니다. 이제 각 이미지에 설명을 추가하려고합니다. 문제는 UILabel을 프로그래밍 방식으로 추가하려고 시도하지만 표시되지 않는 것입니다. label.text에는 텍스트가 포함되어 있습니다. 첫 번째 var label: UILabel = UILabel()에 있고,이 하나 init에있는 contentView에 추가됩니다 -프로그래밍 방식으로 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

당신은 당신의 코드에서 두 UILabel 인스턴스를 생성하고 있습니다.

나중에 layoutSubViews()에 새 인스턴스 self.label을 덮어 쓰지 만이 새 인스턴스는 contentView에 추가되지 않습니다.

하나의 인스턴스 만 만들어 추가되도록 코드를 재정렬하십시오.