代码之家  ›  专栏  ›  技术社区  ›  Martin Muldoon

以编程方式将UILabel添加到UICollectionViewCell

  •  0
  • Martin Muldoon  · 技术社区  · 8 年前

    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 回复  |  直到 8 年前
        1
  •  1
  •   Gereon    8 年前

    你创造了两个 UILabel 代码中的实例-第一个在 var label: UILabel = UILabel() ,这个将添加到您的contentView中 init

    稍后,您将覆盖 self.label 在您的 layoutSubViews()

    重新排列代码,以便只创建和添加一个实例。